2014-10-05 156 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