jQuery ajax表单提交未显示结果
我正在尝试使用ajax将单个textarea表单提交到表单所在的页面。我想在页面顶部显示PHP处理后提交的数据,但我并不真正理解ajax,因此我不理解为什么这不起作用也就不足为奇了 以下是页面顶部的PHP: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 '<
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);
}
});
});