Javascript 使用AJAX从一个页面到另一个页面获取PHP变量

Javascript 使用AJAX从一个页面到另一个页面获取PHP变量,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我有两页: 1.php和2.php 我试图通过一个AJAX请求获得一个从2.PHP到1.PHP的PHP变量 这是1.php中的脚本 <script> jQuery('#refresh').click(function(e){ e.preventDefault(); jQuery.ajax({ type:'POST', url: '2.php', data: { variab

我有两页:

1.php和2.php

我试图通过一个AJAX请求获得一个从2.PHP到1.PHP的PHP变量

这是1.php中的脚本

<script>
    jQuery('#refresh').click(function(e){
        e.preventDefault();
        jQuery.ajax({
            type:'POST',
            url: '2.php',
            data: { variable: '<?php echo $PHPvariable ?>' },
            dataType : 'json',
            success:function(response){
                alert(variable);
            }
        })
    });
</script>
有什么不对???

在2.php中,使用JS的变量POST可以使用$_POST['variable']访问;在PHP中

php中的sessionVar JS是未定义的JS,response.sessionVar JS可以从success:functionresponse{访问数据

在2.php中,必须打印echo json_encodearray'sessionVar'=>$sessionVar;php之类的数据

更新:为了避免混淆,我指出了代码部分是PHP还是JS

更新:

您不能在响应中公开数据和二进制图像,因为在通用HTTP中没有多部分响应。不确定SPDY。可以公开图像或数据,但不能同时公开两者

您可以对图像进行base64编码,并将图像作为数据的一部分输出:

echo json_encode(array(
    'image' => base64_encode($image),
    'variable' => $someVariable),
);
另一种方法不是使用ajax,而是使用phps include'2.php';相反,该变量在1.php中可用

为了更好地理解,此脚本是从 如您所见,我正在尝试检索2.php中声明的$PHPvariable变量。我做得对吗

要从1.php和2.php传递变量,必须使用表单

这是登录用户的一个示例

<form action="2.php" method="post">
    <table>
    <tr>
        <td>
            username:
        </td>
        <td>
            <input type="text" name="userName">
        </td>
    </tr>
    <tr>
        <td>
            password:
        </td>
        <td>
            <input type="password" name="password">
        </td>
    </tr>
    <tr>
        <td>
            <input type="submit" name="invio" value="login">
        </td>
    </tr>
    </table>
</form>
现在,您可以在页面2.php中始终打印消息的结果:

<?php
echo $messaggio;
echo $_POST['userName'];
?>
在gething.php上


您在1.php中,因此$PHPVariable必须在1.php中声明,而不是在2.php中声明。在2.php中,您可以使用$_POST['variable']检索此变量。抱歉,也许我解释错了:我需要做相反的事情!在1.phpIs中,是否可以在JS中获得php?如数据:{variable:},@Ranjith是的,如果你从PHP文件中吐出JS。@RobSchmuecker:你能提供任何参考示例链接吗?抱歉,你不明白:P我正试图通过从1.PHP启动的AJAX请求从2.PHP到1.PHP获取$PHPvariable,然后发出警报。刚刚修复了错误的警报call@Alexvan我知道了,别担心。在2.php中,您必须回显json编码的$PHPvariable.Sure现在删除我的评论并原谅incovenience@Alexvan警报仍在继续wrong@Alexvan您通过echo返回它,然后通过success:functionresponse返回它,您的警报是错误的!您无法使用它进行测试,因为变量未定义。请使用alertresponse或console.debugresponse.Hi@MirkoCianfarani,我试着做的是不使用表单。对不起,我不明白你的句子…米尔科,索诺·意大利人安奇·伊奥,斯托·塞尔坎多·迪帕萨雷·乌纳·帕吉纳·奥塔拉·塞尔扎·乌索·乌索·迪表单变量。-米尔科,我也是意大利人,我试着在不使用表单的情况下将一个变量从一页传递到另一页。啊哈,不,你不能!你可以使用我的电子邮件在skype或其他应用程序上添加ddmrk1989@hotmail.itLook更新答案
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL & ~E_NOTICE);

if (isset($_POST['invio']))
    if (empty($_POST['userName']) || empty($_POST['password']))
        $messaggio = "dati mancanti";
    else {
        session_start();
        $_SESSION['userName']  = $_POST['userName'];
        $_SESSION['dataLogin'] = time();
        $_SESSION['ruolo']     = $ruolo[0];

        $messaggio = '<p> <h1 style="color:red">Benvenuto </h1> </p>';


        ;
    }

?>
<?php
echo $messaggio;
echo $_POST['userName'];
?>
  <?php
header('Location: 1.php');
?>
var value="your value"
xmlhttp.open("GET","gethint.asp?q="+value,true);
 <?php
//get the q parameter from URL
 $q=$_GET["q"];

 //lookup all hints from array if length of q>0
 if (strlen($q) > 0)
 {
  echo $q;
}else{
 echo "miss value";
}
?>