通过ajax发送php变量,如果成功则返回值
我正在后端页面(thread.php)中进行一些处理,该页面基本上返回dateposted和当前时间之间的一段时间内的值。 前端页面(index.php)向thread.php发送一个请求,请求中包含dateposted的值。页面thread.php接收dateposted并相应地返回值。然后index.php将使用返回值的最后一个值,并将dateposted设置为该值,该值将再次作为请求发送。所以这是一个循环。但是,将值“dateposted”从index.php发送到thread.php时,我遇到了一个问题通过ajax发送php变量,如果成功则返回值,php,ajax,Php,Ajax,我正在后端页面(thread.php)中进行一些处理,该页面基本上返回dateposted和当前时间之间的一段时间内的值。 前端页面(index.php)向thread.php发送一个请求,请求中包含dateposted的值。页面thread.php接收dateposted并相应地返回值。然后index.php将使用返回值的最后一个值,并将dateposted设置为该值,该值将再次作为请求发送。所以这是一个循环。但是,将值“dateposted”从index.php发送到thread.php时,
$dateposted = '1328098097623';
<script language="JavaScript">
var dateposted = <?php echo $dateposted ?>;
function returnValue()
{
$.ajax({
async: true,
type: "GET",
url: "thread.php",
data: {lastposted : dateposted},
success: function (html) {
if(html)
{
var newDiv = $('<div/>').html(html);
$('#chatContents').append(newDiv);
}
}
});
}
</script>
基本上我现在已经硬编码了“dateposted”。我不知道如何通过ajax将php变量传递到另一个页面。提前感谢您需要在ajax(thread.php)调用的脚本末尾“回显”$lastpost。您还需要检查isset($\u GET['lastpost'])或$\u POST['lastpost'])。在您的情况下,应获得:
if(!isset( $_GET['lastposted'])){
$lastpost = 0;
}else{
$lastpost = $_GET["lastposted"];
}
echo $lastpost;
您的变量也不匹配-请检查if-isset和赋值的拼写。通过快速查看,我建议您首先用引号“
当前脚本会发生什么情况?问题是什么?数据没有发送过来。我不确定是否是这样,我应该通过ajax将数据发送到另一个页面。Echo显示为0,这意味着变量没有被传递。我以前使用过Request。request不会接受这两个选项中的任何一个吗?request会同时处理这两个选项,但您没有在if(!isset())子句中检查请求。确实是用引号括起来的。如果OP使用Firefox+Firebug,或者在打开开发者栏的情况下使用Chrome,那么这个语法错误就会立即被清除。或者您可以随时添加一个“警报(“它工作”);”在你的新函数中进行测试,这样你就知道你的javascipt工作了。真不敢相信我忽略了这一点。将文本用引号括起来并将其更改为if(!isset($\u GET['lastposted'])造成了差异。是的,您忘记在if语句之前分配变量。这就是为什么它不起作用。我将其更改为post方法,因为GET方法即使在ajax中也有一些限制。坚持使用post方法是一个好习惯
if(!isset( $_GET['lastposted'])){
$lastpost = 0;
}else{
$lastpost = $_GET["lastposted"];
}
echo $lastpost;
var dateposted = <?php echo "$dateposted" ?>;
if(!isset($_POST['lastposted'])){ $lastpost = false; }else{$lastpost=$_POST['lastposted'];}