Hướng dẫn how does php and ajax handle xml data? - php và ajax xử lý dữ liệu xml như thế nào?

Ví dụ PHP - AJAX và XMLAJAX and XML


AJAX có thể được sử dụng để giao tiếp tương tác với tệp XML.


Ví dụ Ajax XML

Ví dụ sau đây sẽ chứng minh làm thế nào một trang web có thể tìm nạp thông tin từ tệp XML với AJAX:

Thí dụ

Thông tin CD sẽ được liệt kê ở đây ...


Ví dụ giải thích - trang HTML

Khi người dùng chọn CD trong danh sách thả xuống ở trên, một hàm có tên "showcd ()" được thực thi. Hàm được kích hoạt bởi sự kiện "Onchange":

hàm showcd (str) {& nbsp; if (str == "") {& nbsp; & nbsp; document.getEuityById ("txthint"). InternalHtml = ""; & nbsp; & nbsp; & nbsp; trở về; & nbsp; } & nbsp; var xmlHttp = new xmlhttprequest (); & nbsp; xmlHttp.onReadyStateChange = function () {& nbsp; & nbsp; if (this.ReadyState == 4 && this.status == 200) {& nbsp; & nbsp; & nbsp; & nbsp; document.getEuityById ("txthint"). Internhtml = this.responsetext; & nbsp; & nbsp; & nbsp; } & nbsp; } & nbsp; xmlhttp.open ("get", "getcd.php? q ="+str, true); & nbsp; xmlhttp.send (); }



Chọn CD: & NBSP; Chọn CD: & NBSP; Bob Dylan & NBSP; Bee Gees & nbsp; Thông tin CD Cat Stevens sẽ được liệt kê ở đây ...
Select a CD:


CD info will be listed here...


Hàm showcd () thực hiện như sau:

  • Kiểm tra xem CD có được chọn không
  • Tạo đối tượng XMLHTTPREQUEST
  • Tạo chức năng sẽ được thực thi khi phản hồi máy chủ đã sẵn sàng
  • Gửi yêu cầu đến một tệp trên máy chủ
  • Lưu ý rằng một tham số (q) được thêm vào URL (với nội dung của danh sách thả xuống)


Các tập tin PHP

Trang trên máy chủ được gọi bởi JavaScript ở trên là một tệp PHP có tên là "getcd.php".

Tập lệnh PHP tải một tài liệu XML, "CD_catalog.xml", chạy truy vấn đối với tệp XML và trả về kết quả là HTML:

$q=$_GET["q"];

$ xmldoc = new DomDocument (); $ xmldoc-> load ("cd_catalog.xml");
$xmlDoc->load("cd_catalog.xml");

$ x = $ xmldoc-> getElementsByTagName ('artist');

for ($ i = 0; $ ilpm-1; $ i ++) {& nbsp; // chỉ xử lý các nút phần tử & nbsp; if ($ x-> item ($ i)-> nodetype == 1) & nbsp; {& nbsp; & nbsp; & nbsp; if ($ x-> item ($ i)-> hEdNodes-> item (0)-> nodeValue == $ q) & nbsp; & nbsp; & nbsp; & nbsp; $ y = ($ x-> item ($ i)-> ParentNode); & nbsp; & nbsp; & nbsp; & nbsp;} & nbsp; & nbsp;}}
  //Process only element nodes
  if ($x->item($i)->nodeType==1) {
    if ($x->item($i)->childNodes->item(0)->nodeValue == $q) {
      $y=($x->item($i)->parentNode);
    }
  }
}

$ cd = ($ y-> trẻ em);

for ($ i = 0; $ ilpm; $ i ++) {& nbsp; // chỉ xử lý các nút phần tử & nbsp; if ($ cd-> item ($ i)-> nodetype == 1) & nbsp; {& nbsp; & nbsp; echo ("". $ cd-> item ($ i)-> gật đầu. ":"); & nbsp; & nbsp; & nbsp; echo ($ cd-> item ($ i)-> con netNodes-> item (0)-> nodeValue); & nbsp; & nbsp; & nbsp; echo (""); & nbsp; & nbsp;}}?>
  //Process only element nodes
  if ($cd->item($i)->nodeType==1) {
    echo("" . $cd->item($i)->nodeName . ": ");
    echo($cd->item($i)->childNodes->item(0)->nodeValue);
    echo("
");
  }
}
?>

Khi truy vấn CD được gửi từ JavaScript đến trang PHP, điều sau đây sẽ xảy ra:

  1. PHP tạo ra một đối tượng DOM XML
  2. Tìm tất cả các yếu tố khớp với tên được gửi từ JavaScript
  3. Xuất thông tin album (gửi đến trình giữ chỗ "txthint")




Ví dụ Ajax XML

Sử dụng với AJAX, chúng tôi có thể phân tích cú pháp XML từ thư mục cục bộ cũng như các máy chủ, dưới đây ví dụ trình bày cách phân tích cú pháp XML với trình duyệt web.

<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","getcourse.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>

Ví dụ trên sẽ gọi getCourse.php bằng cách sử dụng phương thức GET. GetCourse.php Tải trọng tập tin Danh mục.xml. getCourse.php như được hiển thị bên dưới -

<?php
   $q = $_GET["q"];
   
   $xmlDoc = new DOMDocument();
   $xmlDoc->load("catalog.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>");
      }
   }
?>

Catalog.xml

Tệp XML có danh sách các khóa học và chi tiết. Tệp này được truy cập bởi getCourse.php

<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>

Nó sẽ tạo ra kết quả sau -

Hướng dẫn how does php and ajax handle xml data? - php và ajax xử lý dữ liệu xml như thế nào?

Làm thế nào dữ liệu XML có thể được thao tác bằng AJAX trong PHP?

Sử dụng AJAX với XML..
Lời nói đầu. Trong hướng dẫn này, chúng tôi sẽ xem cách gửi dữ liệu đến máy chủ bằng XML và cách lấy dữ liệu từ máy chủ ở định dạng XML. ....
Gửi dữ liệu đến máy chủ ..
Mã HTML của mẫu web của chúng tôi. ....
Xử lý dữ liệu trên máy chủ. ....
Lấy dữ liệu từ máy chủ dưới dạng XML. ....
Bản thử trực tiếp. ....
Mã XML. ....
Mã HTML và JavaScript ..

Ajax có hỗ trợ XML không?

AJAX có thể được sử dụng để giao tiếp tương tác với tệp XML..

AJAX hoạt động như thế nào với PHP?

AJAX cho phép các trang web được cập nhật không đồng bộ bằng cách trao đổi một lượng nhỏ dữ liệu với máy chủ phía sau hậu trường.Điều này có nghĩa là có thể cập nhật các phần của trang web, mà không tải lại toàn bộ trang.Các trang web cổ điển, (không sử dụng AJAX) phải tải lại toàn bộ trang nếu nội dung sẽ thay đổi.allows web pages to be updated asynchronously by exchanging small amounts of data with the server behind the scenes. This means that it is possible to update parts of a web page, without reloading the whole page. Classic web pages, (which do not use AJAX) must reload the entire page if the content should change.

Tại sao XML được sử dụng trong Ajax?

XML thường được sử dụng làm định dạng để nhận dữ liệu máy chủ, mặc dù bất kỳ định dạng nào, bao gồm cả văn bản thuần túy, có thể được sử dụng.AJAX là một công nghệ trình duyệt web độc lập với phần mềm máy chủ web.Người dùng có thể tiếp tục sử dụng ứng dụng trong khi chương trình máy khách yêu cầu thông tin từ máy chủ trong nền.as the format for receiving server data, although any format, including plain text, can be used. AJAX is a web browser technology independent of web server software. A user can continue to use the application while the client program requests information from the server in the background.