我的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,我不知道如何完成...
答案 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));