2011-05-23 71 views
2

我有這種形式:如何使用jQuery提交表單而不刷新?

<form id="myform" name="myform" action="test.php" method="post"> 
<input type="text" name="shout-in" id="proShoutIn" maxlength="80" /> 
<a href="#" id="add_shout"><img src="post.gif"/></a> 
</form> 

我怎樣才能做一個AJAX後,這樣我可以使用if (isset($_POST['shout-in'])){..do something..}? 我需要獲得在<input>中輸入的值,並使用它進行發佈。

有什麼想法? 感謝

回答

3
$('#add_shout').click(function() { 
    var $form=$('#myform'); 
    $.post($form.attr('action'), $form.serialize()); 
}); 

一個文本串與第三參數(可選) $.post()你可以指定一個回調函數,它將接收任何回送的東西作爲唯一的參數ameter。它會在AJAX查詢成功完成時運行(因此您可以執行取決於AJAX調用的DOM修改等)。

你也可能要防止默認表單提交(在許多瀏覽器按下輸入字段中輸入將觸發它的),然後運行AJAX提交:

$('#myform').submit(function (e) { 
    $('#add_shout').click(); 
    e.preventDefault(); 
}); 
+0

和我在哪裏可以符合這個PHP'如果(isset($ _ POST ['shout-in'])){...}' – Patrioticcow 2011-05-23 16:24:02

+0

@Patrioticcow我給你的是Javascript(jQuery)代碼。你寫的PHP代碼行應該放到你的'test.php'中。 – kapa 2011-05-23 16:27:19

+0

如果php在同一個文件中怎麼辦?那會是一個問題嗎? – Patrioticcow 2011-05-23 16:29:34

1
$.post("test.php", $("#myform").serialize(), 
    function(data) { 
     // do something with the response 
    } 
); 
+0

和我在哪裏適合這個PHP'如果(isset($ _ POST [ '呼喊的'])){...}' – Patrioticcow 2011-05-23 16:22:20

1
$("#myform").submit(function (e) { 
     $.post(this.action, $(this).serialize(), function (data) { 
     //handle response 
     }); 
     //prevent form from submitting. In jQuery, do not use return false 
     e.preventDefault(); 
    }