通过ajax发送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时,

我正在后端页面(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'];}