我有这种情况。有如下所示的选择形式并且想要调用ajax函数来获得依赖于更改选择表单的结果,但是从ajax获取整个页面
这是脚本
<html>
<head>
<title>HI</title>
<link rel="stylesheet" href="./scripts/css/default.css">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<form method="post">
<select name="s" id="s">
<option value="one">A</option>
<option value="two">B</option>
<option value="three">C</option>
</select>
</form>
Hello guys ...
<div id="xe"></div>
<script type="text/javascript">
document.getElementById("s").onchange = function(){
var h = false;
if (window.XMLHttpRequest){
h = new XMLHttpRequest();
}
if (h){
h.open("POST","index.php",true);
h.onreadystatechange = function(){
if (h.readyState==4 && h.status==200){
document.getElementById("xe").innerHTML = h.responseText;
}
};
h.send("s=" + document.getElementById("s").value);
}
};
</script>
<?php
if (isset($_POST['s'])){
echo $_POST['s'];
}
?>
</body>
</html>
任何想法?请帮忙,谢谢...
答案 0 :(得分:1)
确实index.php
返回整个页面,将所有HTML嵌入其中。
您可以制作另一个partial.php
,它会在浏览器中返回您需要在页面中注入的部分,并将您的AJAX请求指向它。
答案 1 :(得分:1)
您需要将$ _POST行放在文件的顶部,然后退出():
<?php
if (isset($_POST['s'])){
echo $_POST['s'];
exit;
}
?>
<html>
<head>
<title>HI</title>
<link rel="stylesheet" href="./scripts/css/default.css">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<form method="post">
<select name="s" id="s">
<option value="one">A</option>
<option value="two">B</option>
<option value="three">C</option>
</select>
</form>
Hello guys ...
<div id="xe"></div>
<script type="text/javascript">
document.getElementById("s").onchange = function(){
var h = false;
if (window.XMLHttpRequest){
h = new XMLHttpRequest();
}
if (h){
h.open("POST","index.php",true);
h.onreadystatechange = function(){
if (h.readyState==4 && h.status==200){
document.getElementById("xe").innerHTML = h.responseText;
}
};
h.send("s=" + document.getElementById("s").value);
}
};
</script>
</body>
</html>