Archive

Posts Tagged ‘beginners’

Virtualbox ubuntu дээр дэлгэц тохируулах

April 9th, 2010 2 comments

Virtualbox 3.1 дээр суусан ubuntu эхлээд 640×480 , 800×600 гэсэн 2 л хэмжээтэй байх аж. Харин үүнийг яаж томруулах вэ. Анх суулгаж байгаа залууст зориулан алхам алхамаар хийх заавар бичлээ.

Дараахь алхамуудыг хийгээрэй.

1. Virtualbox-ийн Machine->Auto-resize Guest Display -ийг идэвхжүүлнэ.

2. Мөн Virtualbox-ийн Devices менюны Install Guest Additions … -ийг ажилуулна. Энэ бол чиний виртуал суулгасан зочин систем (guest system)-д чинь шаардлага програм бүхий виртуал cdrom драйвэр үүсгэсэн байх бөгөөд энэ VBOXADDITIONS_3 гэсэн нэртэй үүссэн байна.
Read more…

PHP/MySQL 2: phpMyAdmin ашиглах

March 23rd, 2009 27 comments

MySQL-тэй холбогдон ажилладаг олон хэрэгсэл бий. Эдгээрээс вебэд суурилан ажилладаг phpmyadmin -ийг ашиглаж сурах хэрэгтэй. Ер нь веб сайт хийгээд түүнийгээ хост хийхэд mysql баазаа phpmyadmin-аар л ихэвчлэн серверт байрлуулах болон бусад үйлчилгээг хийдэг. Иймд энэ програмыг сайн ашиглаж сурах хэрэгтэй. phpmyadmin эндээс татаж аваад өөрийн локаль хост дээр http://localhost/phpmyadmin гэсэн хаягаар ажилладаг байхаар хуулна. Үүний дараа доорхи хэдэн алхамуудыг хийж гүйцэтгэнэ. Уг нь хуучин 1.х, 2.х хувилбарууд дээрээ ингээд хуулаад л root нь нууцгүй үггүй бол  шууд ажилладаг байсан бол одоо бид нарын ашиглах гэж байгаа 3.х дээр root буюу хамгийн гол хэрэглэгч нь нууц үггүй байвал ажиллахгүй энэ тэр гэсэн тохиргоотой болсон байна. Read more…

Categories: PHP/MySql Tags: , ,

AJAX -ийг Prototype ашиглан хэрэгжүүлэх нь

February 11th, 2009 10 comments

Өмнө хэлж байсны дагуу энд бичсэн жишээг Prototype JavaScript Framework ашиглан хийж үзье. Өмнөх жишээнд хэрэглэгдсэн zurhai.html, ajax_zurhai.php файлууд бүгд хэрэглэгдсэн. Харин zurhai.html дотор prototype.js, pt_ajax.js гэсэн  JS файлуудыг дуудаж ашигласан. prototype.js нь Prototype JS Framework харин pt_ajax.js нь миний бичсэн prototype ашиглан  AJAX бий болгох JS код юм.  зүйлүүдийг тайлбарлая. Энэ нилээд ач холбогдолтой яг ажиллаж байгаа жишээ гэдгийг анхааран үзээрэй.

zurhai.html  доторхи өмнөх жишээнээс өөрчлөгдсөн зарим  чухал зүйлүүдийг тайлбарлая.

1. onchange=” var ord=’ord=’+this.value;  Ajax_Loader(‘ajax_zurhai.php’,’medeelel_haruulah_div’, ord)”  onchange дээр ord гэсэн хувьдагчид сонгофдсон ордны ID -ийг ord=arslan гэх мэтээр олгож байна.

2. <div id=”loading” style=”display:none”><img src=”images/indicator.gif” /> Loading …</div> энэ бол дуудах үед харагдах анимац гаргах DIV. Бусад үед харагдахгүй байна. Харагдуулахгүй байхыг нь style=”display:none”  CSS хийж байна.

3. <script type=”text/javascript” src=”js/prototype.js”></script>
<script type=”text/javascript” src=”js/pt_ajax.js”></script> энэ 2 мөр бол JS үүдээ дуудаж байгаа хэсэг. pt_ajax.js нь бидний сурч авах хамгийн гол зүйлийг агуулж байгаа JS юм. Ингээд уг JS -ийг тайлбартайгаар хүргэе.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
// JavaScript Document
/*
AJAX duudagdah yed zurhai.html dotorhi
<div id="loading" style="display:none"><img src="images/indicator.gif" alt="" /> Loading ...</div>
-ийг харуулана. Харин AJAX дуудагдаад дууссны дараа харагдуулахгүй болгож байна.
*/
var myGlobalHandlers = {
	onCreate: function(){
		Element.show('loading');
	},
 
	onComplete: function() {
		if(Ajax.activeRequestCount == 0){
			Element.hide('loading');
		}
	}
};
 
Ajax.Responders.register(myGlobalHandlers); /* дээрхи handler-ийг protptypte -ийн AJAX -д холбож өгч байна. */
 
/*
Prototype ашигласан AJAX- дуудах универсал функц
ПАРАМЕТРУУД
url: Server дээр байгаа дуудагдах PHP (манай жишээний хувьд) файлын нэр
container: Үр дүнг харуулах DIV эсвэл ямар контайнерын ID. Манай жишээний хувьд medeelel_haruulah_div
param: url-ийн араас залгах url query. Манай жишээний хувьд ord=arslan гэх мэт.
*/
function Ajax_Loader(url,container, param) {
var params = param;
var myAjax = new Ajax.Updater(
					{success: container},
					url,
					{
						method: 'get',
						parameters: params,
						onFailure: reportError
					});
 
}
 
/*  Алдаа гарсан үед энэ функц дуудагдана. */
 
function reportError(request) {
	alert('Sorry. There was an error.');
}

Ажиллуулж үзэх | Энэ жишээг татаж авах

Цааашид веб програмчлал сонирхож байгаа залуус prototype-ийн талаар дэлгэрэнүүлэн сайтар судлах шаардлагатай. Ганц энэ ч биш jquery, dojo гэх мэт олон сайхан framework-үүд бий.

Ajax-ийг хэрхэн хэрэгжүүлэх вэ?

January 12th, 2009 6 comments

AJAX -ийг яаж веб хуудсандаа хэрэглэх талаар энд тайлбарлая. Өмнөх бичлэгт үүх түүх, давуу сул тал гэх мэт ерөнхий мэдээлэл багтсан бол одоо харин жаахан дэлгэрүүлнэ. AJAX -ийг ашиглах гэж байгаа бол  юуны түрүүнд вебийн ерөнхий ажиллагааны зарчмыг мэддэг байх хэрэгтэй юм. Бүх веб сайтууд интернетийн серверт байрлаж байх бөгөөд хэрэглэгчид түүнд холбогдон веб сайтуудыг үздэг. Ингэхээр сервер тал хэрэглэгч буюу клиент тал гэсэн 2 хэсэгт хуваагдаж байна. Веб програмчлалын хэлнүүд яг энэ 2 талд хуваагддаг. Жишээ нь Javascript бол серверээс код хэлбэрээр HTML -ийн хамт дуудагдан ирээд хэрэглэгчийн веб броузер дээр ажиллан үр дүнгээ харуулдаг тул клиент талын хэл болж байна. Харин PHP бол клиентын илгээсэн хүсэлтийн дагуу ажиллаад HTML хуудсыг бэлтгэн гаргаж байдаг сервер талын хэл юм.

Ер нь бол хэрэглэгч веб броузер дээрээ ямар нэг веб сайтын хаяг бичээд түүнийг дуудах үйлдэл нь уг веб сайтыг байрлуулж байгаа серверт түүнийг үзэх хүсэлт буюу request илгээж байгаа хэрэг юм. Веб хуудсны бусад линкнүүд дээр дарах, хайлт хийх гэх мэт бүхий л үйлдлийг веб сервер хүсэлт буюу request гэж хүлээж авна. Энэ хүсэлтийн дагуу уг веб сервер (apache, IIS гэх мэт) хэрэглэгчидэд хүссэн үр дүнг буюу response-ийг буцааж байдаг. Энэ reponse нь ихэвчлэн бараг бүгд HTML форматаар хэрэглэгчид очдог. Хэрэглэгчийн броузер түүнийг нь танд веб хуудас болгон харуулдаг байна. Энэ бүх процесст веб хуудас бүхлээрээ дахин дуудагдаж ачаалагдаж (reload) байдаг.

Харин AJAX бол энэ бүхэл хуудасыг дахин дуудахгүйгээр зөвхөн шаардлагатай хэсэг дээр серверээс мэдээлэл аван тэр хэсгийн мэдэллийг шинэчлэх боломжийг бий болгоно. Өөрөөр хэлбэл веб хуудасны нэг хэсэг бие даан веб серверт холбогдон өөртөө хэрэгтэй мэдээллийг харуулах боломжтой болж байгаа хэрэг. Чухамхүү энэ л боломж веб програмистуудад олон сайхан боломжийг нээж өгж байгаа билээ. Жишээ нь хэрэглэгч бүртгэх үед хэрэглэгч сонгосон логин нэрээ бичээд дуусахад уг нэрийг нь серверт илгээн авч болох эсэхийг уг хуудсийг тэр чигээр нь пост хийхээс өмнө мэдэгдэх, зургийн галлери дээр зөвхөн хэрэглэгчийн сонгосон зургийг томоор харуулах гэх мэт маш олон зүйлд хэрэглэж болж байна. Ингэснээрээ л веб сайтыг десктоп програм шиг ажиллах боломжийг бүрдүүлж байгаа юм. Асинхрон гээд байгаагийн учир ч эндээс гарна. Хэрэглэгч уг веб дээр  юм хийж байхад уг хийж байгаа зүйлийг серверт илгээн боловсруулалт хийж л байдаг мөн өөр хэсгүүдийн мэдээллийг өөрчилж байдаг нь байдаг нь асинхрон процесс юм.

Ингээд веб хөгжүүлэлтэнд гарч ирсэн энэ техникийг яаж хэрэгжүүлэх талаар бичие. Жишээ нь веб хуудасны нэг товчин дээр дарахад уг хуудсны нэг хэсэгт (веб хуудас тэр чигээрээ дуудагдаж биш) шинэ мэдээлэл гарч ирдэг байна гэвэл.

1. Клиент талын HTML байна. Үүн дээр хэрэглэгч ажиллана. Нэг товч байна. Түүнтэй хамт мэдээллийг харуулахад зориулсан нэг DIV байгаа гэж үзье.

2. Товчны onclick event дээр JS хэрэглэгчийн функц дуудагдаж байна. Энэ функц нь AJAX-ийг бий болгон хүсэлтийг серверт илгээн үр дүнг DIV харуулах гол функц юм.

3. Сервер талд ямар нэг сервер талын хэл ажиллаж байх бөгөөд 2 дахь алхамд байгаа JS функцээр дуудагдаж үр дүнгээ (response) буцаана.

4. Буцаж ирсэн үр дүн DIV-д харагдана.

Энэ үйлдлүүдийг гүйцэтгэхэд веб хуудас бүхлээрээ дахин дуудагдахгүй бөгөөд зөвхөн манай жишээн дээр гарсан DIV -ийн л агуулга өөрчлөгх болно. Эдгээр зүйлийг бий болгож байгаа JS -ийн боломжуудын талаар авч үзье.

JS дээр AJAX дээр бий болгох нь

XMLHttpRequest Обьект

Чухамхүү JS -ийн энэ обьект л AJAX-ийг бий болгож хэрэгжүүлж байна. Энэ обьект нь сүүлийн үеийн броузерууд дээр  xmlHttp=new XMLHttpRequest(); гэж бий болох боловч IE ийн хуучин хувилбарууд дээр xmlHttp=new ActiveXObject(“Msxml2.XMLHTTP”);  xmlHttp=new ActiveXObject(“Microsoft.XMLHTTP”); гэх мэтээр үүснэ. Энэ бичиглэлийн new гэдэг оператораар xmlHttp-д шинэ обьект үүсгэж байгааг та бүхэн төвөггүй ойлгож байгаа гэж найдаж байна.

Энэ обьект нь open,send гэсэн 2 чухал method-той. Жишээ нь

xmlHttp.open("GET","ajax_response.php?cid=1",true);
xmlHttp.send(null);

open нь сервер дээр байгаа ajax_response.php -ийг GET ээр дуудаж байгаад send нь серверт илгээж байна.Энэ бол клиент дээрээс серверт хүсэлт илгээж байгаа үйлдэл болно.

Харин серверээс ajax_response.php ажиллаад гарсан үр дүнг барьж авахын тулд XMLHttpRequest-ийн onreadystatechange -property-ийг ашиглана. Энэ маш ач холбогдолтой property. Энэ property серверээс ирэх хариулт буюу response-ийг боловсруулах функцийг агуулж байна. Дээрхи 2 метод дуудагдах үед автоматаар дуудагна. Бичигдэх хэлбэр нь

xmlHttp.onreadystatechange=function()
{
// Энд үр дүнг боловсруулах функцийн бие бичигдэнэ
}

onreadystatechange -ийн функц дотор хэрэглэгдэх XMLHttpRequest -ийн 2 проперти бол readyState, responseText 2 юм.

readyState – нь сервер илгээсэн хүсэлтийн төлөвийг тодорхойлж байдаг.

readyStateд оорхи утгуудыг авна.

Утга Тайлбар
0 Хүсэлт илгээгдээгүй
1 Хүсэлт илгээгдэж байна
2 Хүсэлт илгээгдсэн
3 Хүсэлтийг сервер боловсрууж байна.
4 Хүсэлт биелэсэн

responseText нь серверээс буцаж ирсэн мэдээллийг текст форматаар агуулж байдаг.

xmlHttp.onreadystatechange=function()
{
       if (xmlHttp.readyState==4) {
		document.getElementById("medeelel_haruulah_div").innerHTML=xmlHttp.responseText;
	}
}

Дээрхи жишээнд хэрвээ хүсэлт биелэгдсэн бол серверээс буцаж ирсэн үр дүнг medeelel_haruulah_div гэсэн ID -тай DIV -д харуулж байна. onreadystatechange -ийг дараах хэлбэрээр бичиж болно.

xmlHttp.onreadystatechange=ZurhainMedeelelHaruulah;

function ZurhainMedeelelHaruulah()
{

if (xmlHttp.readyState==4) {
   document.getElementById("medeelel_haruulah_div").innerHTML=xmlHttp.responseText;
}

}

onreadystatechange event бөгөөд обьект хандалтад visual програмчлалын хэлнүүдэд шинээр обьект runtime үүсгээд event-үүдийг тодорхойлж өгж байгаа мэт байна.

Сервер талын ажиллагаа

Сервер талд манай жишээний хувьд ajax_response.php ажиллаж байна. Энэ хуудсанд клиентээс  хувьсагчууд(URL Query) дамжиж ирж байх бөгөөд тэдгээрийн утгаар ямар үр дүн буцаахыг тодорхойлно. Энэ нь сервер дээр ажиллаж байх тул өгөгдлийн санруу холбогдох статик хуудас унших, ямар нэг файлаас мэдээллээ авах гэх мэт олон боломжууд нээлттэй байна. Энэ бүхий үр дүн ямар нэгэн утга буцаадаг байна. Энэ клиент дээр reponse болон очно.

<?php

$cid=$_GET[‘cid’];

if ($cid==1) echo ‘ 1-d tohiroh utga ‘;
else echo ‘ 1 ees uur yamar negen utga ‘;

?>

Иймэрхүү логиктой юм сервер дээр байх юм.

Ерөнхийдөө AJAX ийм зарчмаар ажилладаг. Мэдээж энэ бол хамгийн энгийн ажиллах зарчим боловч ихэнх нь иймэрхүү төвшинд л хэрэглэсэн байдаг. Тун удахгүй live жишээ байрлуулах болно.

PHP For the Absolute Beginner

January 4th, 2009 6 comments

PHP хэлийг анхлан сурч байгаа бол та бүхэн http://devzone.zend.com/node/view/id/627 -д байгаа материалуудийг үзнэ үү. Энэ бүүр эхнээс тайлбарлаад явсан зүйлүүд учир их зүгээр. Zend бол php хэлийг хөгжүүлэгч компани бөгөөөд энэ хэлтэй холбоотой олон бүтээгдэхүүн гаргасан билээ. Сүүлийн үед би өөрийн хийж байгаа ажлуудаа zend framework ашиглахаар шийдээд байна. Гэхдээ яг ашиглаад юм хийгээд эхлээгүй байгаа учир сайн муугиин тухай хэлэх юм алга. Хийгээд ашиглаад үзсэн хүн байвал санал бодлоо хуваалцвал баярлах болно.

Categories: PHP/MySql Tags: ,