变量没有从ajax发送到php

时间:2014-10-05 08:30:16

标签: php jquery ajax

我使用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
}

3 个答案:

答案 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;,你什么都看不到?

检查浏览器开发人员工具上的网络标签,确保数据正确发送。