为什么PHP会忽略ajax POST?

时间:2012-10-30 12:26:11

标签: php jquery ajax post get

代码:(index.php):

<head>

<?php
if(isset($_GET['text1']))
{
some_function();
}
?>
</head>

<body>
<form id="form">
<input type="text" id="text1" name="text1"/>
<input type="text" id="text2" name="text2"/>
<input type="submit" id="submit" value="submit"/>
</form>

<script>
$(document).ready(function(){

    $("#submit").click(function(){
            var dataString=$("form#form").serialize();
            var proccessPage="<?php echo $_SERVER['PHP_SELF'] ?>";

            alert(dataString);
            $.ajax({
                type: "POST", 
                url: proccessPage,
                data: dataString,
                });
    return false;
    });


});
</script>
</body>

任何人都知道为什么不会触发some_function();来电?我不知道问题是在ajax,php还是在哪里。我花了两天时间尝试使用$.post$.ajax,在代码中搜索可能的错误等,但我发现它没有任何问题。

你知道些什么吗?谢谢你的所有答案。

2 个答案:

答案 0 :(得分:6)

因为您正在寻找GET而不是POST。将PHP更改为以下内容:

<?php
if(isset($_POST['text1']))
{
some_function();
}
?>

GETPOST是不同类型的HTTP请求,您需要确保您的PHP代码正在寻找合适的HTTP代码。在这个问题上有一个相当全面的描述他们之间的区别: What is the difference between POST and GET?

答案 1 :(得分:1)

无论如何这都不行!

原因是你正在制作一个Asynchronus的AJAX POSTBACK。

为了得到你需要的东西,你必须尝试这种方式:

<form id="form" action="" method="post">

并删除脚本部分。它会工作!

~Shakir Shabbir