XML请求无法正常工作

时间:2014-03-16 16:29:04

标签: php ajax xml json request

我的javascript文件中有一个XML请求,它没有正确地将我的变量传输到PHP,我无法弄清楚原因。我可能会错过某种参考库吗?

这是有问题的功能。我知道str变量有我想要的内容。我会在评论中留下旧的试用代码,以防您想看看我尝试过的内容。

function PHP_Con(str)
{
var xmlhttp;
if (str=="")
{
document.getElementById("txtHint").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}

if(!xmlhttp)
{
alert("Fehler");
}
else
{

/*$.ajax({
type:"POST",
url:"dbConnection.php",
data:{"test" : "str"},
success:function()
{
alert("success");
}
});*/

alert(str);
xmlhttp.open("GET","dbConnection.php?test="+str,true);                       
// Requestheader senden
xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
// Request senden
xmlhttp.send();

/*var json_string= JSON.stringify(str); // convert it into a json string. 
$.post('dbConnection.php' , {test : json_string },function(){
alert("success");
}); */

}
}

这是我对应的PHP代码:

$test = intval($_POST['test']);
echo $test;

另外,我知道isset但我试图让变量显示出来。如果不存在,我宁愿得到一个错误,如果这是因为......

非常感谢你。 :)如果有更简单的方法可以做到这一点,我也会对此感兴趣。

但是到目前为止我觉得我确实需要一个调用JS函数的Form,然后我的JS从用户输入中检索变量,然后这些变量转到PHP,以便可以对我的数据库进行检查。 ...这对我来说似乎是正确的顺序,但我承认没有非常清楚地了解JS变量如何在PHP中出现,以及PHP如何以通过HTML代码反映的方式进行响应...例如我想" echo"使用比较结果(用户输入数据库内容)返回到p中的span,我不知道如何完成...

1 个答案:

答案 0 :(得分:1)

您正在发送GET请求,因此您必须使用$_GET代替$_POST

$test = intval($_GET['test']);
echo $test;

POST请求看起来像

xmlhttp.open("POST","dbConnection.php",true);                       
// Requestheader senden
xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
// Request senden
xmlhttp.send("test="+encodeURIComponent(str));