2012-11-14 85 views
2

出於某種原因,當該文件有一個PHP擴展的跟蹤代碼不起作用:hijax不是PHP擴展工作

<ul class="issues"> 
<li><a href="jobs.php">Jobs</a></li> 
<li><a href="town-centres.php">Town Centre</a></li> 
</ul> 
<div id="input"></div> 

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script> 
<script> 
(function(){ 
var wrap = $('#input'); 
$('ul.issues a').on('click', function(e){ 
    var href = $(this).attr('href'); 
    wrap.load(href + ' article'); 
    e.preventDefault(); 
}); 
})(); 
</script> 

正常工作在本地,但除非我改變文件擴展名遠程服務器上沒有出現到htm。控制檯顯示XHR已加載。見broken PHP versionworking .htm version

回答

0

的問題是PHP腳本是什麼(或者是不是在這種情況下)返回......

wrap.load(href + ' article'); 

這個jQuery加載href,只是得到<article>部分並將其裝入到wrap元素中。如果你使用類似Firebug(或使用AJAX加載的任何瀏覽器的調試器,你可以看到的內容),你會看到PHP腳本返回如下:

<div id="content"> 
<h1>Do new supermarkets really create jobs?</h1> 
etc... 

凡爲.htm版本的回報:

<div id="content"> 
<article> 
<h1>Do new supermarkets really create jobs?</h1> 
etc ... 

所以,你可以看到PHP不與<content>標籤回覆 - 因此沒有HTML被添加到wrap元素

您有2個選項來解決這個問題..

  1. 更改了jQuery wrap.load(href + ' #content');
  2. 更改PHP腳本包括<article>