2012-03-11 65 views
1

我有問題,Ajax和php.I有下一個代碼PHP/AJAX不能發送值

$("form").submit(function() { 
var poruka = $("#poruka").val(); 
    $.ajax({ 
     type: "GET", 
     url: "/ajax/gather/send/"+ poruka + "/'.$id.'", 
     success: function(){ 
     loaduj('.$id.'); 
     alert("Your message is "+poruka); 
     }, 
     error: function(){ 
      alert("fail"); 
     } 
    }); 
}); 

「poruka」是消息,並將其從形式

<form action='javascript:;'> 
<input type='text' name='poruka' id='poruka' placeholder='Poruka..' style='width:100%;'> 
<input type='button' name='button' hidden> 
</form> 

拍攝,當我嘗試發送到PHP它不會插入到數據庫:

PHP代碼:

$text = $_POST['text']; 
$id = $_POST['id']; 
if($text != ""){ 
    mysql_query("INSERT INTO messages (text,id2) VALUES ('$text','$id')") or  die(mysql_error()); 
} 

它不能工作..我可以如何解決它?謝謝

回答

2

您使用POST而不是GET。在您的AJAX表格中,您指定使用GET,但在PHP中,您使用的是超全局的$_POST

變化$_POST$_GET在PHP代碼,它應該工作:)

此外,如果你不指定在你的標記方法,則默認爲GET

從經驗來看,在情況下,如果從表單中的數據不被寫入/更新/到數據庫使用

echo mysql_error(); 

的MySQL查詢後,也打開你的瀏覽器的開發者工具,並在檢查網絡面板。如果您的F12因咖啡溢出而無法使用,則可以使用F12和CTRL + SHIFT + I打開開發人員工具。網絡面板顯示正在發送的數據,使用的方法以及網絡呼叫的每個其他細節。此外,你可以看到你的服務器端腳本的響應,在這種情況下,將返回一個mysql錯誤信息,因爲你回顯了它。

+0

哦,男人,我很蠢:D謝謝 – user1245311 2012-03-11 16:52:00

+0

沒問題,希望幫助! :) – 2012-03-11 16:53:21

+0

我會在7分鐘內接受回答 – user1245311 2012-03-11 16:55:40

0

通常的交易是首先找到問題,然後郵寄:

  • 形式沒有要求JS
  • JS沒有發出請求
  • PHP沒有得到可變

SQL injection檢測

+0

此時SQL注入並非如此。他只是想要一個簡單的代碼工作,而不是實現完整的功能,即使一件簡單的事情沒有按預期工作 – 2012-03-11 16:55:28

+0

我不能說作者 - 他做什麼或不想做什麼,但通常你不會不要寫代碼把它放在一個密封的盒子裏,你是唯一一個打開它的人。給定的SQL可能會有問題;這只是一個警告。 – 2012-03-11 17:11:01

+0

這很好,但是我相信你的答案不適合這裏的問題:) – 2012-03-11 17:12:08