2014-10-05 132 views
0

我正在使用ajax将表单提交到php页面以便进行查询。 问题是$ _POST是空的。 我在这里做错了什么? 任何想法?变量不从ajax发送到php

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

对不起你的问题,是这是你的问题,你是即使你的'POST'是空的,也可以提交表单。让我知道,means isset函数没有做你期望的。谢谢 – 2014-10-05 08:42:35

+0

问题是表单正在提交,成功函数正在工作,但$ _POST是空的,所以在PHP中的所有代码没有运行。 – 2014-10-05 08:45:13

+0

看到我给出的答案。它可能会帮助 – 2014-10-05 08:52:21

回答

1

一个参数添加到您的成功功能:

 success: function (response) { 

$("#pelates_last_name_query").slideDown("slow"); 
    $("#pelates_last_name_query").html(response); 


    } 

,你会得到从PHP页面响应....

附:测试PHP页面看起来应该像这样(或任何你想要的回应 - 你应该ECHO的东西,送一些输出):

<?php 
if(isset($_POST['epitheto'])){ 

print_r($_POST); 
} 
?> 

因此,瓦尔正确发送....(我现在已经测试过它)。

如果你的PHP页面看起来你atached码/给我们展示的 - 没有任何输出,你没有任何印刷....

+0

你是对的。只是测试它也。所以问题是,我不能加载数据到#pelates_last_name_query ... HTML(响应)不起作用 – 2014-10-05 09:18:52

+0

@AlexandrosTseros,你测试这个代码?本地或在线?如果你在本地测试 - >你需要安装并开启php服务器。 :),这必须工作.... – sinisake 2014-10-05 09:33:06

+0

@AlexandrosTseros,嗯......你可以给我们链接,并完成HTML ...你检查控制台? – sinisake 2014-10-05 09:34:49

1

<form>元素有submit事件,<div>没有。

第一行改成这样:

$('form').on('submit', function (e) { // <-- change '#button_left' to 'form' 
    // (...) Code 
} 
+0

表单正在提交。与$('form')或$('#button_left')相同的结果 – 2014-10-05 08:37:32

+0

您如何知道表单已提交? – EternalHour 2014-10-05 09:01:45

0

我相信阿米特可能是正确的。您正在指定要提交的不正确的数据。

更改<form><form id="content">
然后相应地更改您的JQuery代码。

$('#content').on('submit', function (e) {//rest of your code//} 

另一个可能的问题是您的URL范围不正确。
url: 'people_name_query_final.php',将工作假设PHP脚本和JQuery在同一个目录中。

另外,如果你在你的PHP脚本中做print_r($_POST); exit;,你什么都看不到?

检查浏览器开发人员工具的网络选项卡以确保数据正确发送。

+0

我相信那不是问题。已经测试过,仍然没有工作。是的,他们在同一个目录中。 – 2014-10-05 08:51:42

+0

只是增加了一些想法。 – EternalHour 2014-10-05 08:51:56