Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery ajax表单提交未显示结果_Jquery_Ajax_Forms - Fatal编程技术网

jQuery ajax表单提交未显示结果

jQuery ajax表单提交未显示结果,jquery,ajax,forms,Jquery,Ajax,Forms,我正在尝试使用ajax将单个textarea表单提交到表单所在的页面。我想在页面顶部显示PHP处理后提交的数据,但我并不真正理解ajax,因此我不理解为什么这不起作用也就不足为奇了 以下是页面顶部的PHP: if(isset($_POST['convert'])) { $string = htmlspecialchars(strtolower($_POST['convert'])); echo '<pre>'; print_r($string); echo '<

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

以下是页面顶部的PHP:

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

当我提交表单时,我会收到警告消息,但PHP$string变量从未得到响应。我在这里遗漏了什么?

因为您没有对数据进行任何处理:


你怎么知道它没有被回应,你没有对ajax调用的结果做任何事情?就像我说的,我想把表单发布到同一个页面,如果你用常规的旧HTML提交,那么你就把action属性留空,提交到同一个页面。这里只涉及很少的PHP,那么创建一个特殊的文件来发布数据有什么用呢执行'alerthtml;`。当您从Ajax运行php脚本时,它不会在屏幕上打印任何内容。您需要实际打印返回的数据us JS。我已尝试将url:$this.attr'action'更改为url:window.location.href,其作用与将action属性保留为空完全相同。我收到了警报,但数据从未显示。@Amygdala$\u POST已设置,但不是为呈现发出请求的页面的PHP脚本设置的。您能看到时间循环吗?。它是为呈现AJAX响应的PHP脚本设置的,然后javascript可以读取该响应。OP可能还想使用$.load。$body应该是$document。body@JanDvorak是的,我本来有这个,但是后来我把它改成了body的jQuery版本。虽然这是整个文档的附件,我能够从这个例子中学到如何获得我所需要的价值。谢谢。@Amygdala-是的,如果您使用ajax发布到同一个页面,那么在进行ajax调用时,您必须使用某种条件在呈现整个页面之前结束输出。
<form id="text" name="text" action="" method="POST">
  <textarea name="convert" id="convert">This is data</textarea>
  <input type="submit" value="Submit">
</form>
$('form').submit(function(e) {
  e.preventDefault();
  $.ajax({
    url: $(this).attr('action'),
    type: $(this).attr('method'),
    data: $(this).serialize(),
    success: function(html) {
      alert('ok');
    }
  });
});
$('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); 
    }
  });
});