我使用ajax将表单提交到php页面以进行查询。 问题是$ _POST是空的。 我在这做错了什么? 有任何想法吗?
FORM
<div id="button_left">
<form>
<label>
<input type="text" class="search" size="30" style="margin-left:20px;" name="epitheto" id="epitheto" placeholder="Επίθετο" />
</label>
<label>
<input type="submit" value="Αναζήτηση" />
</label>
</form>
</div
功能
$(function () {
$('#button_left').on('submit', function (e) {
e.preventDefault();
$.ajax({
type: 'post',
url: 'people_name_query_final.php',
data: $('form').serialize(),
success: function () {
$("#pelates_last_name_query").slideDown("slow");
$("#pelates_last_name_query").load( "people_name_query_final.php");
}
});
});
});
PHP
if(isset($_POST['epitheto'])){
//some code
}
答案 0 :(得分:1)
<form>
元素有submit
个事件,<div>
没有。
将第一行更改为:
$('form').on('submit', function (e) { // <-- change '#button_left' to 'form'
// (...) Code
}
答案 1 :(得分:1)
为您的成功函数添加一个参数:
success: function (response) {
$("#pelates_last_name_query").slideDown("slow");
$("#pelates_last_name_query").html( response);
}
你将从php页面得到回应....
P.S。测试php页面应该看起来像这样(或者你想要的任何响应 - 你应该ECHO的东西,发送一些输出):
<?php
if(isset($_POST['epitheto'])){
print_r($_POST);
}
?>
所以,vars被正确发送....(我现在已经测试过了。)
如果你的php页面看起来像你给我们看过的代码 - 没有任何输出,你没有打印任何东西......
答案 2 :(得分:0)
我相信阿米特可能是正确的。您正在指定要提交的错误数据。
将<form>
更改为<form id="content">
然后相应地更改您的JQuery代码。
$('#content').on('submit', function (e) {//rest of your code//}
另一个可能的问题是您的网址范围不正确
假设PHP脚本和JQuery位于同一目录中,url: 'people_name_query_final.php',
将起作用。
另外,如果你在PHP脚本中执行print_r($_POST); exit;
,你什么都看不到?
检查浏览器开发人员工具上的网络标签,确保数据正确发送。