似乎我的脚本无法在ajax_test.php中调用PHP函数。我正在尝试在下拉框更改时实现对php函数的调用。我的html页面是index.php。代码如下。任何人都可以开导我吗? index.php
<script>
$(document).ready(function(){
$("#cm").change(
function ()
{
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
//code goes here
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
var test = $.ajax
({
type: "POST",
url: "ajax_test.php",
dataType: "json",
}).done(function(){
document.getElementById("box").innerHTML = xmlhttp.responseText;
});
}
}
xmlhttp.open("POST","ajax_test.php",true);
xmlhttp.send();
});
});
</script>
<div>
<div id="box"><p>a</p></div>
<form>
<select id="cm">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select>
</form>
ajax_test.php
<?php
function hey(){
echo '<p>hey</p>';
}
?>
答案 0 :(得分:1)
如果您使用的是jquery,则应该坚持使用jquery函数。 尝试使用以下代码替换您的更改功能。
$("#cm").change(
function (){
$.ajax({
type: "POST",
url: "ajax_test.php",
dataType: "json"
}).done(function(data){
$("#box").html(data);
});
}
});
另外请确保您发送的是正确的dataType。检查服务器是否正在返回application/json
以获取ajax调用的响应类型。
您不仅需要定义,还需要在php脚本中调用函数hey()
。
答案 1 :(得分:0)
我认为您缺少图书馆。 添加
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js">
</script>
在脚本启动之前。 在这里我使用的是1.8.3,你可以使用最新的一个只是谷歌周围。
答案 2 :(得分:0)
建议:
You are trying to mix 2 ways to call ajax. I mean using XMLHttp request object & also jquery ajax. Try either one. I suggest you for jquery ajax. Tell me if you need any programming help.
- 感谢