2010-09-19 28 views
1

我想使用Jquery加載xml文件。 xml是使用php腳本生成的(目前只是使用echo)我的問題是該文件將不會生成和結果。我jQuery是下面 Jquery/XML使用從PHP文件生成的xml時沒有響應

  $(document).ready(function() 
      { 

       $.ajax({ 
       type: "GET", 
       url: "phpxml.php", 
       dataType: "xml", 
       success: displayXml 
       }); 

      function displayXml(data){ 

      $(data).find("sites").each(function() { 

       var heading = $(this).find("name").text(); 

       var output = "<li>"; 
       output += "<h2>" + heading + "</h2>"; 
       output += "</li>"; 
       $("#place-holder").append(output); 
      }); 
      } 

      }); // doc ready 

      </head> 

      <body> 

      <h2> Ajax/Jquery Test </h2> 
      <ul id='place-holder'> 
      </ul> 
     </html> 

我的PHP文件中列出的是剛剛回聲XML下方。任何人都可以提供任何建議嗎?

  <?php 

      echo '<?xml version="1.0" encoding="iso-8859-1" ?>'; 

      echo" 
      <sites> 
       <name> 
        J Smith 
       </name> 

       <name> 
        A Coxhead 
       </name> 

       <name> 
        D Wilson 
       </name> 

      </sites> 
      " ; 

      ?> 
+0

難道'displayXml'被調用?有沒有寫入'#place-holder'的東西? – 2010-09-19 13:58:22

回答

2

嗯,看來你還沒有設置phpxml.php文件內容型。

嘗試,

<?php 
header('content-type:text/xml'); 
      echo '<?xml version="1.0" encoding="iso-8859-1" ?>'; 

      echo" 
      <sites> 
       <name> 
        J Smith 
       </name> 

       <name> 
        A Coxhead 
       </name> 

       <name> 
        D Wilson 
       </name> 

      </sites> 
      " ; 

?> 

確保不應該有空格前的PHP標籤其他明智的頭不會被髮送。

+0

如果您不將數據類型放入'$ .ajax'中,Content-Type是非常必要的 – jcubic 2010-09-19 14:36:42

0

Firebug或等價物告訴你什麼是迴應?首先,你的ajax請求得到響應?

也將斷點(或警示)在displayXml功能,以確保它是射擊......

0

嘗試將錯誤回調添加到$.ajax

如果這是你的代碼的樣子,那麼你在php文件中有<?之前的空格。

XML文件必須<?xml作爲第一個字符

您還沒有<script type="text/javascript"> ... </script>標籤