这个AJAX脚本如何通过post将变量传递给PHP脚本?

时间:2011-09-06 21:20:03

标签: php jquery ajax

我正在阅读本教程

http://www.9lessons.info/2009/04/exactly-twitter-like-follow-and-remove.html

关于如何实现类似Twitter的关注/取消关注按钮。

我对AJAX也是全新的,所以当我一起去的时候,我很想弄清楚它。

通常一个人通过一个表单传递变量并将操作设置为POST,然后使用PHP进行操作。

然而,这里有javascript的这一部分(用于关注用户)

<script type="text/javascript" >
$(function() 
{
    $(".follow").click(function(){
        var element = $(this);
        var I = element.attr("id");
        var info = 'id=' + I;
        $("#loading").html('<img src="loader.gif" >');

        $.ajax({
            type: "POST",
            url: "follow.php",
            data: info,
            success: function(){
                $("#loading").ajaxComplete(function(){}).slideUp();
                $('#follow'+I).fadeOut(200).hide();
                $('#remove'+I).fadeIn(200).show();
            }
        });
        return false;
    });
});
</script>

并说我们有这部分的html / php

<?php
$sql=mysql_query("Some SQL Statement that grabs users");
while($row=mysql_fetch_array($sql))
{
    $id=$row["user_id"];
?>
<div id="follow<?php echo $id;?>">
    <a href="#" class="follow" id="<?php echo $id;?>">
    <span class="follow_b"> Follow </span></a>
</div>
<div id="remove<?php echo $id;?>" style="display:none"> 
    You Following <a href="#" class="remove" id="<?php echo $id;?>">
    <span class="remove_b"> remove </span></a>
</div>
<?php
}
?>

follow.php所需的POST变量是什么? “成功”做了什么以及它如何与follow.php互动?

4 个答案:

答案 0 :(得分:1)

我相信你想要$ _POST ['id']来访问你传入的id参数。

当follow.php脚本成功完成时,将调用“success”。

答案 1 :(得分:1)

PHP将收到一个名为“id”的POST变量,该变量的值存储在标识为ID的页面元素中。

成功处理程序是一个脚本构造,表示“如果ajax请求成功,则执行此代码”。还有一个“错误”等价物,只有在事情爆炸时才会执行。 success本身不与PHP交互。如果PHP脚本没有返回错误代码,那么只需要运行一些代码。

许多ajax脚本通过操纵响应的HTTP错误代码来指示成功/失败。 2xx =一切正常,调用success处理程序。任何4xx或5xx都会调用error处理程序。

答案 2 :(得分:0)

jQuery ajax调用将数据编码为POST并将其发送到PHP脚本。看起来在这种情况下脚本是在同一页面上,所以我猜它会ping自己。 AJAX以异步方式(根据定义)执行此操作。

当ajax从php页面收到响应时会触发success函数。这就是你知道数据是如何进行往返的,以及你期望从php脚本获得的任何数据。这是您希望按顺序放置下一个功能的地方,或者依赖于您从.php返回的数据的任何内容。

答案 3 :(得分:0)

这解释了$ .ajax()调用的参数:http://api.jquery.com/jQuery.ajax/

您收录的帖子不是教程,只是他使用的代码片段。有关Jquery Ajax函数的实际教程,请尝试本教程:

http://net.tutsplus.com/tutorials/javascript-ajax/5-ways-to-make-ajax-calls-with-jquery/