0

尝试将变量传递给 PHP 文件,然后获取该文件的输出。

页1.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 页面中实现的响应。

4

3 回答 3

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>
于 2013-07-08T02:42:58.617 回答
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 页面的输出传递给它的函数

于 2013-07-08T03:06:16.750 回答
1

data2您的 post 调用是异步的,只有在该过程完成后您才能访问该变量,因此您应该....innerHTML ...在数据可用时在回调函数中执行您的操作,而不是之前。

在任何 js 网站上都有很多很好的例子。在jQuery doc上有一个很好的例子。由于您使用的是 jQuery,因此您也可以替换您的innerHTML调用。

于 2013-07-08T02:42:51.023 回答