jQuery ajax表单提交不显示结果

时间:2014-02-04 22:20:37

标签: jquery ajax forms

我正在尝试使用ajax将单个textarea表单提交到表单所在的同一页面。我希望在页面顶部的PHP处理后显示提交的数据,但我并不真正理解ajax,所以我不明白为什么这不起作用就不足为奇了。

这是页面顶部的PHP:

if(isset($_POST['convert'])) {
  $string = htmlspecialchars(strtolower($_POST['convert']));
  echo '<pre>';
  print_r($string);
  echo '</pre>';
}

这是html表单:

<form id="text" name="text" action="" method="POST">
  <textarea name="convert" id="convert">This is data</textarea>
  <input type="submit" value="Submit">
</form>

这是提交表单的jQuery:

$('form').submit(function(e) {
  e.preventDefault();
  $.ajax({
    url: $(this).attr('action'),
    type: $(this).attr('method'),
    data: $(this).serialize(),
    success: function(html) {
      alert('ok');
    }
  });
});

当我提交表单时,我收到警告消息,但PHP $string变量永远不会被回显。我在这里缺少什么?

1 个答案:

答案 0 :(得分:4)

那是因为你没有做任何 数据:

$('form').submit(function(e) {
  e.preventDefault();
  $.ajax({
    url: this.action,
    type: this.method,
    data: $(this).serialize(),
    success: function(html) {
      console.log(html); // logs your response to the js console
      //appends your response to the doc body (if you _really_ wanted to do that)
      $('body').append(html); 
    }
  });
});