我是php和ajax的新手。我想用php运行ajax的简单代码,但代码没有按预期工作。我想在发生更改时在页面中加载一些文本
源代码ajax.php
<select id='mySelect' onChange="MyFunction()">
<option value='option1'>Option1</option>
<option value='option2'>Option2</option>
<option value='option3'>Option3</option>
</select>
<script>
function MyFunction()
{
var params="myName=2";
var xmlHttp;
if(window.XMLHttpRequest)
xmlHttp=new XMLHttpRequest();
else
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
xmlHttp.open("GET","edittest.php",true);
if(xmlHttp)
{
xmlHttp.onreadystatechange=function(){
if(xmlHttp.readyState==4 && xmlHttp.status==200)
{
alert(document.getElementById('mySelect').value);
}
}
}
xmlHttp.send(params);
}
</script>
edittest.php源代码
<?php
if(isset($_GET))
{
for($i=0;$i<1000;$i++)
{
echo($_GET['myName']);
}
}
?>
为了获得更简单的体验,我建议您使用jQuery AJAX。这是代码。查看文档以了解更多详细信息。
function MyFunction()
{
var myName=2;
$.ajax({
url: "/edittest.php",
data: {
myName: myName
},
type: "GET",
success: function(response){
console.log(response);
}
});
}
您的问题是,您声明了var params="myName=2";
,但从未使用过它。您的脚本可以工作,但由于它只是请求edittest.php
,它不会向您显示任何内容,因为您的PHP脚本只打印出myName
变量。
您应该在请求的末尾添加如下参数:
<select id='mySelect' onChange="MyFunction()">
<option value='option1'>Option1</option>
<option value='option2'>Option2</option>
<option value='option3'>Option3</option>
</select>
<script>
function MyFunction() {
var params = "myName=2";
var xmlHttp;
if (window.XMLHttpRequest)
xmlHttp = new XMLHttpRequest();
else
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
xmlHttp.open("GET", "edittest.php?" + params, true);
if (xmlHttp) {
xmlHttp.onreadystatechange = function () {
if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
alert(document.getElementById('mySelect').value);
}
}
}
xmlHttp.send(params);
}
</script>
(注意xmlHttp.open("GET", "edittest.php?" + params, true);
部分。)