2011-05-23 70 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(); 
    }