无法接收ajax发布数据

时间:2013-11-12 13:08:09

标签: javascript php jquery ajax post

我正在尝试使用php打印日历,但很难弄清楚如何使用ajax更改显示的月份

我在标签中有两个按钮,其值分别为“+1”和“-1”,其中class =“selectMonth”

<button class="selectMonth" name="selectMonth" value="-1">previous</button>
<button class="selectMonth" name="selectMonth" value="+1">next</button>

这是我的ajax代码:

$(".selectMonth").on("click", function(){
        $.ajax({
            url : "index.php",
            type : "POST",
            data : {selectMonth : this.value},
            success : function(){
                alert("success!");
            }

        });

    }); 

在我的index.php中我有

    <?php 
if(!isset($_POST["selectMonth"]))
    $_SESSION["date"] = time();
else
{
    $selectMonth = $_POST["selectMonth"];
    $_SESSION["date"] = strtotime($selectMonth . 'month');
}
var_dump($_POST["selectMonth"]);

$date = $_SESSION["date"];
print_calendar($date);

?>

单击其中一个按钮后,我可以获取警报消息,但不能获取$ _POST变量,var_dump始终为NULL

有人可以为我找出错误吗? 我还在学习ajax。

非常感谢!

3 个答案:

答案 0 :(得分:1)

尝试

$(".selectMonth").on("click", function(){
    var inputVal = $(this).attr('value');
    $.ajax({
        url : "index.php",
        type : "POST",
        data : {selectMonth : inputVal},
        success : function(){
            alert("success!");
        }

    });

}); 

答案 1 :(得分:1)

尝试以下代码行:

data : {'selectMonth' : $(this).val()},

OR

data : {'selectMonth' : $(this).attr('value')},

答案 2 :(得分:0)

而不是

data : {selectMonth : this.value}

data : {selectMonth : this.val()}