我有两页:
1.php 和 2.php
我正试图通过AJAX请求从2.php获取PHP变量到1.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>
为了更好地理解,从1.php文件中调用此脚本。 正如您所看到的,我正在尝试检索2.php中声明的$ PHPvariable变量。 我这样做了吗?
这是2.php
中的varialbe delcaration$PHPvariable = 'bla1bla2bla';
$variable = array('PHPvariable ' => $PHPvariable );
echo json_encode($variable);
有什么问题?
答案 0 :(得分:0)
在2.php中,可以使用variable
(在PHP中)访问$_POST['variable'];
(使用JS的POST)。
sessionVar
(JS)未定义(JS),response.sessionVar
(JS)(来自success:function(response){
)可以访问数据。
在2.php中,你必须打印像echo json_encode(array('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中可用。
答案 1 :(得分:0)
为了更好地理解,这个脚本是从内部调用的 1.php文件。正如您所看到的,我试图检索2.php中声明的$ PHPvariable变量。我这样做了吗?
要从1.php
和2.php
传递变量,您必须使用form
。
这是登录用户的示例
<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
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>';
;
}
?>
现在您可以打印(始终在页面2.php
内)消息的结果:
<?php
echo $messaggio;
echo $_POST['userName'];
?>
要在页面1.php中返回,您可以使用:
<?php
header('Location: 1.php');
?>
在php的脚本中。
如果您想使用AJAX并且没有刷新页面,我认为您需要this exercise
我建议你这样做:
var value="your value"
xmlhttp.open("GET","gethint.asp?q="+value,true);
并gething.php
<?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";
}
?>