HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. HEMEN TIKLA!
PHP'yi AJAX ile kullanarak, bir XML belgesini hem yerel dizinden hem de bir sunucudan ayrıştırabiliriz. Aşağıdaki örnek, XML'in web tarayıcısıyla nasıl ayrıştırılacağını göstermektedir.
İstemci tarafındaki betik bir HTML formu oluşturur ve XMLHttpRequest nesnesi ile sunucuya bir HTTP isteği göndermek için bir JavaScript işlevi tanımlar.
Sunucuda, bir PHP betiği, gerekli XML belgesinden DOM nesnesini yükler, seçilen dersi $_REQUEST değişkeninden alır ve seçilen dersin ayrıntılarını yanıt olarak istemciye geri gönderir.
Kullanıcının bir kurs seçmesine izin vermek için "
İstemci tarafındaki betik bir HTML formu oluşturur ve XMLHttpRequest nesnesi ile sunucuya bir HTTP isteği göndermek için bir JavaScript işlevi tanımlar.
Sunucuda, bir PHP betiği, gerekli XML belgesinden DOM nesnesini yükler, seçilen dersi $_REQUEST değişkeninden alır ve seçilen dersin ayrıntılarını yanıt olarak istemciye geri gönderir.
Adım 1
Aşağıdaki XML belgesi XAMPP sunucusunun belge kökünde saklanır.<?xml version = "1.0" encoding = "utf-8"?>
<CATALOG>
<SUBJECT>
<COURSE>Android</COURSE>
<COUNTRY>India</COUNTRY>
<COMPANY>TutorialsPoint</COMPANY>
<PRICE>$10</PRICE>
<YEAR>2015</YEAR>
</SUBJECT>
<SUBJECT>
<COURSE>Html</COURSE>
<COUNTRY>India</COUNTRY>
<COMPANY>TutorialsPoint</COMPANY>
<PRICE>$15</PRICE>
<YEAR>2015</YEAR>
</SUBJECT>
<SUBJECT>
<COURSE>Java</COURSE>
<COUNTRY>India</COUNTRY>
<COMPANY>TutorialsPoint</COMPANY>
<PRICE>$20</PRICE>
<YEAR>2015</YEAR>
</SUBJECT>
<SUBJECT>
<COURSE>Microsoft</COURSE>
<COUNTRY>India</COUNTRY>
<COMPANY>TutorialsPoint</COMPANY>
<PRICE>$25</PRICE>
<YEAR>2015</YEAR>
</SUBJECT>
</CATALOG>
Adım 2
Aşağıdaki AJAX kodu, XMLHttpRequest nesnesi aracılığıyla HTTP isteği oluşturmak için bir HTML formu ve bir JavaScript fonksiyonundan oluşmaktadır.
Kod:
<html>
<head>
<script>
function showCD(str) {
if (str == "") {
document.getElementById("txtHint").innerHTML = "";
return;
}
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else {
// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("txtHint").innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("GET","hello.php?q="+str,true);
xmlhttp.send();
}
</script>
</head>
<body>
<form>
Select a Course:
<select name = "cds" onchange = "showCD(this.value)">
<option value = "">Select a course:</option>
<option value = "Android">Android </option>
<option value = "Html">HTML</option>
<option value = "Java">Java</option>
<option value = "Microsoft">MS technologies</option>
</select>
</form>
<div id = "txtHint"><b>Course info will be listed here...</b></div>
</body>
</html>
Adım 3
XML belgesi içerisinde arama yapmak için sunucu tarafı PHP betiği aşağıdaki gibidir:
PHP:
<?php
$q = $_GET["q"];
$xmlDoc = new DOMDocument();
$xmlDoc->load("test.xml");
$x = $xmlDoc->getElementsByTagName('COURSE');
for ($i = 0; $i<=$x->length-1; $i++) {
if ($x->item($i)->nodeType == 1) {
if ($x->item($i)->childNodes->item(0)->nodeValue == $q) {
$y = ($x->item($i)->parentNode);
}
}
}
$cd = ($y->childNodes);
for ($i = 0;$i<$cd->length;$i++) {
if ($cd->item($i)->nodeType == 1) {
echo("<b>" . $cd->item($i)->nodeName . ":</b> ");
echo($cd->item($i)->childNodes->item(0)->nodeValue);
echo("<br>");
}
}
?>
Kullanıcının bir kurs seçmesine izin vermek için "
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
" adresini ziyaret edin. Seçim yapıldığında, ilgili ayrıntılar sunucudan alınır ve aşağıdaki gibi görüntülenir:
Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
- Cevaplar
- 1
- Görüntüleme
- 121
- Cevaplar
- 1
- Görüntüleme
- 81
