代码:(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
,在代码中搜索可能的错误等,但我发现它没有任何问题。
你知道些什么吗?谢谢你的所有答案。
答案 0 :(得分:6)
因为您正在寻找GET
而不是POST
。将PHP更改为以下内容:
<?php
if(isset($_POST['text1']))
{
some_function();
}
?>
GET
和POST
是不同类型的HTTP请求,您需要确保您的PHP代码正在寻找合适的HTTP代码。在这个问题上有一个相当全面的描述他们之间的区别:
What is the difference between POST and GET?
答案 1 :(得分:1)
无论如何这都不行!
原因是你正在制作一个Asynchronus的AJAX POSTBACK。
为了得到你需要的东西,你必须尝试这种方式:
<form id="form" action="" method="post">
并删除脚本部分。它会工作!
~Shakir Shabbir