2011-07-31 75 views
4

我是新來的jQuery/AJAX。 我試圖用jQuery/ajax/php發送單一輸入。用ajax/jquery/php發送單個輸入

LIVE EXAMPLE

但是,按提交什麼都沒發生後,哪裏是我的錯誤? 任何幫助非常感謝。

HTML:

<form action="submit.php"> 
    <input id="number" name="number" type="text" /> 
    <input id="submit" name="submit" type="submit" /> 
</form> 

JQUERY/AJAX:

$(document).ready(function(e) { 
    $('input#submit').click(function() { 
     var number = $('input[name=number]'); 
     var data = 'number=' + number.val(); 

     $.ajax({ 
      url: "submit.php", 
      type: "GET", 
      data: data, 
      cache: false, 
      success: function(html) { 
       if (html == 1) { 
        alert('wyslane'); 
       } 
       else { 
        alert('error'); 
       } 
      } 
     }); 
     return false; 
    }); 
}); 

PHP:

<?php 
    $mailTo = '[email protected]'; 
    $mailFrom = '[email protected]'; 
    $subject = 'Call Back'; 
    $number = ($_GET['number']) ? $_GET['number'] : $_POST['number']; 
    mail($mailTo, $subject, $number, "From: ".$mailFrom); 
?> 
+1

當我測試你的實例時,Firebug告訴我PHP腳本是404 - 'GET submit.php?number = 23&_ = 1312128751227 404 Not Found 397ms' –

回答

3

HTML:

<form id=submit action=""> 
    <input id="number" name="number" type="text" /> 
    <input name="submit" type="submit" /> 
</form> 

,只要你想通過AJAX來提交您的數據操作網址是無關緊要的。將submit id添加到表單並覆蓋默認提交行爲,而不是覆蓋提交按鈕的onclick處理程序。我會在JS部分解釋。

JS:

var number = $('input[name="number"]'); 

行情失蹤。

$(document).ready(function(e) { 
    $('#submit').submit(function() { 
     var number = $('input[name=number]'); 
     var data = 'number=' + number.val(); 

     $.ajax({ 
      url: "submit.php", 
      type: "GET", 
      data: data, 
      cache: false, 
      success: function(html) { 
       if (html == 1) { 
        alert('wyslane'); 
       } 
       else { 
        alert('error'); 
       } 
      } 
     }); 
     return false; 
    }); 
}); 

我真的不明白你的成功回調,你爲什麼想到html應該等於1?

0
var number = $('input[name=number]'); 

是錯誤的。這是

var number = $('input[name="number"]'); 
1

ATLEAST按您的提交按鈕時,我得到404錯誤:

Not Found  
The requested URL /index.php was not found on this server.  
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request. 

當你得到它的工作,記得要加mysql_real_escape_string功能,避免SQL注入http://php.net/manual/en/function.mysql-real-escape-string.php

既然你也可以使用ID號碼,您可以使用:var data = 'number=' + $('#number').val()

此外,如果您將ID添加到表單中,則可以使用:

$('#formId').submit(function(){ 

}); 

而不是那個點擊。這個函數將在提交表單時啓動。這是更好的方式,因爲用戶可以用其他方式提交表單,而不僅僅是點擊提交按鈕(輸入)。