我正在尝试使用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
变量永远不会被回显。我在这里缺少什么?
答案 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);
}
});
});