如何通过jQuery.ajax()将多个参数传递给PHP?

时间:2011-08-16 18:30:37

标签: php jquery html

我有一个简单的加载更多样式脚本,可以在索引页面上正常工作,其中只有一个参数通过ajax发送

    $(function() {//When the Dom is ready
    $('.load_more').live("click",function() {//If user clicks on hyperlink with class  name = load_more
        var last_msg_id = $(this).attr("id");//Get the id of this hyperlink this id indicate the row id in the database
        if(last_msg_id!='end'){//if  the hyperlink id is not equal to "end"
            $.ajax({//Make the Ajax Request
                type: "POST",
                url: "index_more.php",
                data: "lastmsg="+ last_msg_id,
                beforeSend:  function() {
                    $('a.load_more').html('<img src="loading.gif" />');//Loading image during the Ajax Request
                },
                success: function(html){//html = the server response html code
                    $("#more").remove();//Remove the div with id=more
                    $("ul#updates").append(html);//Append the html returned by the server .
                }
            });
        }
        return false;
    });
});

使用此HTML / PHP

<div id="more">
 <a  id="<?php echo $msg_id; ?>" class="load_more" href="#">more</a>
</div>

但是,我想添加另一个php变量,以便它也可以使用特定的类别,我没有编写HTML和PHP的问题,但我是Jquery的新手,并努力编辑脚本以包含附加参数,如果它已设定。这是我正在考虑使用的HTML,只是努力编辑JQuery

<div id="more"class="<?php echo $cat_id;?>">
<a id="<?php echo $msg_id;?>" class="load_more2" href="#">more</a>
</div>

一如既往,我们非常感谢任何帮助!

4 个答案:

答案 0 :(得分:7)

您可以设置

data = {onevar:'oneval', twovar:'twoval'}

将发送两个键/值对。

请参阅Jquery ajax docs

如果查看data部分,您可以看到您可以传递查询字符串,例如您,数组或对象。如果您使用的是与之相同的方法,那么data值就像"lastmsg="+ last_msg_id + "&otherthing=" + otherthing

答案 1 :(得分:5)

您可以在ajax调用的data部分传递多个网址参数。

data: "lastmsg="+ last_msg_id +"&otherparam="+ other_param

在PHP方面,你只需按原样处理这些。

答案 2 :(得分:3)

您可以使用此代码:

$.ajax({//Make the Ajax Request
                type: "POST",
                url: "index_more.php",
                data: {var1: "value1", var2: "value2"},
                beforeSend:  function() {
                    $('a.load_more').html('<img src="loading.gif" />');//Loading image during the Ajax Request
                },
                success: function(html){//html = the server response html code
                    $("#more").remove();//Remove the div with id=more
                    $("ul#updates").append(html);//Append the html returned by the server .
                }
            });

答案 3 :(得分:-1)

试一试:

data: JSON.stringify({ lastmsg: last_msg_id, secondparam: second_param_value});

您可以添加更多参数,用逗号(,)分隔它们。