使用jQuery submit()发布问题数据

时间:2011-02-03 05:43:55

标签: forms jquery

我有下面的脚本。我试图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所拥有的,但我仍然没有取得任何成功。

2 个答案:

答案 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;
});