2016-02-19 99 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”