Javascript 使用AJAX从一个页面到另一个页面获取PHP变量
我有两页: 1.php和2.php 我试图通过一个AJAX请求获得一个从2.PHP到1.PHP的PHP变量 这是1.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
<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";
}
?>