尝试将变量传递给PHP文件,然后获取该文件的输出。
Page1.html:
<h2 id="test"></h2>
<script>
var data2;
$.post('textandemail.php',{ txt: "John", email: "test@gmail.com" },
function(data) {
data2 = data;});
document.getElementById("test").innerHTML = data2;
</script>
textandemail.php:
$variable = $_POST["txt"];
$variable2 = $_POST["email"];
echo $variable;
echo $variable2;
希望这描述了理想的想法。我将在PHP文件中做更多的事情,但最后回应出我希望JavaScript读取并实现到html页面的响应。
答案 0 :(得分:1)
您的帖子调用是异步的,只有在完成一个过程后才能访问data2
变量,因此您应该在回调函数中执行....innerHTML ...
,当数据可用时,而不是之前
在任何js网站上都有很多很好的例子。在jQuery doc你有一个很好的例子。
由于您使用的是jQuery,因此您也可以替换innerHTML
电话。
答案 1 :(得分:1)
$.post()
函数是异步的。它结束了一段时间。您需要将该函数的结果赋值放入成功处理程序中,而不是在函数本身之后,因为正如您现在所做的那样,行document.getElementById("test").innerHTML = data2;
正在ajax函数完成之前发生,因此它不会工作
这是你可以做到的:
<h2 id="test"></h2>
<script>
$.post('textandemail.php',{ txt: "John", email: "test@gmail.com" },
function(data) {
// any code that uses the ajax results in data must be here
// in this function or called from within this function
document.getElementById("test").innerHTML = data;
}
);
</script>
或者,既然你有jQuery,你可以这样做:
<h2 id="test"></h2>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script>
$.post('textandemail.php',{ txt: "John", email: "test@gmail.com" },
function(data) {
// any code that uses the ajax results in data must be here
// in this function or called from within this function
$("#test").html(data);
}
);
</script>
答案 2 :(得分:1)
你应该使用ajax函数在php和javascript之间进行通信
function Ajax_Send(GP,URL,PARAMETERS,RESPONSEFUNCTION){
var xmlhttp
try{xmlhttp=new ActiveXObject("Msxml2.XMLHTTP")}
catch(e){
try{xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")}
catch(e){
try{xmlhttp=new XMLHttpRequest()}
catch(e){
alert("Your Browser Does Not Support AJAX")}}}
err=""
if (GP==undefined) err="GP "
if (URL==undefined) err +="URL "
if (PARAMETERS==undefined) err+="PARAMETERS"
if (err!=""){alert("Missing Identifier(s)\n\n"+err);return false;}
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState == 4){
if (RESPONSEFUNCTION=="") return false;
eval(RESPONSEFUNCTION(xmlhttp.responseText))
}
}
if (GP=="GET"){
URL+="?"+PARAMETERS
xmlhttp.open("GET",URL,true)
xmlhttp.send(null)
}
if (GP="POST"){
PARAMETERS=encodeURI(PARAMETERS)
xmlhttp.open("POST",URL,true)
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded")
xmlhttp.setRequestHeader("Content-length",PARAMETERS.length)
xmlhttp.setRequestHeader("Connection", "close")
xmlhttp.send(PARAMETERS)
调用函数将其放在javascript页面中
Ajax_Send("POST","users.php",data,e)
其中data是您发送到php页面的数据,e是您将php页面的输出传递给它的函数