2016-02-19 57 views
1

我有一個AJAX更改功能在我的代碼..哪些工作正常..在本地服務器.. ... WAMP ...但不在遠程服務器上執行...哪裏可能是問題? ? 我檢查服務器的PHP太大的版本...AJAX更改功能

我的代碼..

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
<script type="text/javascript"> 

$(document).ready(function() 
{ 
$(".course").change(function() 
{ 
var id=$(this).val(); 
var dataString = 'id='+ id; 

$.ajax 
({ 
type: "POST", 
url: "ajaxfile.php", 
data: dataString, 
cache: false, 
success: function(html) 
{ 
$(".book").html(html); 

} 
}); 

}); 

}); 
</script> 

Course : 
<select name="course" class="course"> 
<option selected="selected">--Select Course--</option> 
<?php 

include "db.php"; 
$sql ="select * from Courses"; 
$query=mysqli_query($connection,$sql); 
while($row=mysqli_fetch_array($query)) 
{ 
$id=$row['Cid']; 
$name=$row['Course']; 
echo '<option value="'.$name.'">'.$name.'</option>'; 
} ?> 

</select> 

Album : 
<select name="book" class="book"> 
<option selected="selected">--Select Book--</option> 
</select> 

ajaxfile.php

<?php 
include('db.php'); 
if($_POST['id']) 
{ 
$id=$_POST['id']; 
$sql ="select BookTitle from bookcode where Courses='$id'"; 
$result=mysqli_query($connection,$sql); 

while($row=mysqli_fetch_array($result)) 
{ 
$id=$row['id']; 
$data=$row['BookTitle']; 
echo '<option value="'.$id.'">'.$data.'</option>'; 
} 
} 

?> 
+0

您是否在瀏覽器的控制檯中查看? –

+1

'從bookcode'選擇BookTitle - '$ row ['id']'和'$ id'不會出現,因爲您沒有在查詢中選擇它。而且沒有任何地方提到'id'。 –

+0

*你對我說山姆?* - @JayBlanchard看到我們是唯一在這裏。 –

回答

0

的問題是這一行:

echo '<option value="'.$name.'">'.$name.'</option>'; 

將其更改爲:

echo '<option value="'.$id.'">'.$name.'</option>'; 

爲什麼?因爲在你的ajax然後傳遞ID而不是名字:var dataString = 'id='+ id;

+0

Thx ...這是其中一個錯誤...和其他錯誤是區分大小寫的......即在本地服務器..它會接受任何case..table名稱..但在遠程服務器... case敏感是問題.. –

0

我假設你有某種接入問題對ajaxfile.php

您可以嘗試設置URL爲「/ajaxfile.php」如果它位於網頁上可訪問的主目錄中或具有像「http://」這樣的完整路徑,請將您的網址放在這裏「/ ajaxfile.php」