2016-12-06 102 views
-3

我正在開發一個項目,該項目發送一個ajax post請求到一個php文件,然後設置一個php變量並返回js中的變量。這一切都很好。我一直在努力的是,一旦getPhpVar()函數運行,就可以在index.php文件中調用$ name。ajax post在php中返回php變量

這是什麼程序應該做的事: 1.run getPhpVar()函數 2.sends阿賈克斯後,以get.php 3 get.php集名稱變量 4. get.php發送名稱變量回至JS 5.我能叫名變量在PHP 代碼: 的index.php

<script type = "text/javascript" src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>  
<script> 
function getPhpVar(varname) { 
     $.post("get.php", 
     { 
      name: varname, 
     }, 
     function(data,status){ 

      alert("Data: " + data + "\nStatus: " + status); 
     }); 
} 
getPhpVar(11); 
</script> 
<?php echo $name; 
?> 

get.php:

<?php 
if($_REQUEST["name"]) { 
    $name = $_REQUEST['name']; 
    echo $name; 
} 

?> 
+1

alert()不顯示預期的結果嗎?它顯示了什麼? – David

+0

是的,它的確如此。但是我需要php var not js var。 – codebro

+1

那''?php echo $ name; ?>在index.php中總是會在你的ajax調用之前運行。它在頁面發送給用戶之前在您的服務器上運行。 –

回答

3

你不能做到這一點回音,你需要做的是通過這樣的javascript:

<script> 
    function getPhpVar(varname) { 
     $.post("get.php", 
     { 
      name: varname, 
     }, 
     function(data,status){ 
      document.getElementById("result").innerHTML = data; 
      alert("Data: " + data + "\nStatus: " + status); 

     }); 
} 
getPhpVar(11); 
</script> 

而且你的HTML文件將是這樣的:

<div id="result"></div> 

其實你$name變量是在服務器但是你想在客戶端使用它,要使用它,你需要把它放在一些var或者使用在javascript中使用等效回聲,它是document.getElementById("result").innerHTMLdocument.write,另一種方法是在php和echo中使用$_SESSION變量。

+0

echo只是爲了縮短我實際需要$ name的代碼 – codebro