在没有表单的情况下在PHP中接收.ajax

时间:2014-01-16 21:07:34

标签: php jquery ajax

我有这个剧本:

<script>
var request;
$("#foo").click(function(event){
    request = $.ajax({
        url: "/votesHandler.php",
        type: "post",
        data: "true"
        });
        request.done(function (response, textStatus, jqXHR){
            alert("Voted!");
        });
        request.fail(function (jqXHR, textStatus, errorThrown){
            alert(
                "Oops, something went wrong"
            );
        });
        request.always(function () {
            alert("Done.");
        });
</script>

我正在尝试做的是在单击#foo元素时向服务器发送“true”。我以前只使用过AJAX几次,每次都使用表单。问题是我需要在PHP中接收此POST请求(带$_POST['foo']),但这次输入不是文本输入的名称。如何在没有表单的情况下将data发送到$_POST

3 个答案:

答案 0 :(得分:2)

您可以在发送到网址时指定数据密钥。

$.ajax({
 data: {foo: 'true'}
});

要检索它,请使用

$_POST['foo']

答案 1 :(得分:1)

发送时间:

data: 'foo_clicked=1',

data: 'foo_clicked=' + somevarname,

在PHP方面:

$recd = $_POST['foo_clicked'];
if ($recd == 1) {
     //do what you need to do
}

答案 2 :(得分:0)

试试这个:

    $("#form").submit(function (e) {
    var postData = $(this).serializeArray();
    var formURL = $(this).attr("action");
    console.log(formURL); //your form action
    $.ajax({
        url: formURL,
        type: "POST",
        data: postData,
        beforeSend: function () {
           //do
        },
        success: function (data, textStatus, jqXHR) {
            console.log('success data');
            //whatever

        },
        error: function (jqXHR, textStatus, errorThrown) {
            //if fails
            console.log('fail');
        }

    });
    e.preventDefault(); //STOP default action
});