我有下面的脚本。我试图POST数据并将其插入数据库,jQuery执行得很好,但不发布任何内容,操作正常,因为当我发布没有脚本的数据时,数据发布正常并插入到数据库很好没有任何错误,所以似乎jquery函数没有发布任何内容。有人可以帮忙吗?
$('#form').live('submit',function(){
$('#form').fadeOut('slow');
$('#div').append("<h2>submittes</h2>");
return false;
});
<form id="form" method="post" action="execute.php" name="form">
<textarea id="text" name="update"></textarea>
<br>
<input type="submit" value="update" id="update-submit">
</form>
编辑:
$('#form').live('submit',function(){
var updateTextArea = $('#textarea').val();
$.ajax({
type: "POST",
url: "execute.php",
data: updateTextArea,
success: function() {
$('#form').fadeOut('slow');
$('#div').append("<h2>updated</h2>");
}
});
return false;
});
这就是我对ajax所拥有的,但我仍然没有取得任何成功。
答案 0 :(得分:2)
您的javascript中没有任何AJAX调用。您只是淡出表单,附加h2
,并阻止默认操作发生(这将是正常提交表单)。
以下是如何创建POST ajax请求的基本示例:
$('#form').submit(function(){
$.post($(this).attr('action'), { update: $(this).find('#text).val() }, function(){
// success
});
});
查看jQuery API / Docs以获取更多相关信息。关于如何做到这一点,还有许多潜伏在网上的教程。
答案 1 :(得分:1)
好吧,通过从事件处理函数返回false
,您可以触发两件事:
.preventDefault()
).stopPropagation()
)这可以防止提交事件发生。
您需要在提交事件处理程序中自行传输数据。例如,创建一个ajax请求,该请求将表单数据序列化并将其发送到您的服务器。
看起来像:
$('#form').live('submit',function(){
$('#form').fadeOut('slow');
$('#div').append("<h2>submittes</h2>");
$.post('execute.php', $(this).serialize(), function(data) {
// do something after success
});
return false;
});