我正在练习对本地主机执行简单的AJAX调用,但是遇到了麻烦。我想做的是将两个文本框表单值发送到PHP,然后在成功通过AJAX接收后让它在我的表单中向空div返回一条消息。我的test.php是这样的:
<?php
$num = htmlentities(substr($_POST["num"], 0, 7), ENT_QUOTES);
$name = htmlentities(substr($_POST["name"], 0, 50), ENT_QUOTES);
$result = "'$num ' + 'and' + ' $name' + ' values have been successfully AJAXd'";
echo json_encode($result);
jQuery的:
$("#form").submit(function() {
event.preventDefault();
$("#msgcontainer").html("");
$.ajax({
url: "test.php",
data: ("#num").serialize(), ("#name").serialize(),
contentType: "application/json; charset=utf-8",
type: "POST",
dataType: "json"
success: function(response) {
$("#msgcontainer").html(response);
}
});
}
当我尝试提交时,页面只是重新加载并将表单值添加到URL。我已经尝试解决这一问题了大约一天,因此我们将不胜感激。
编辑:
我通过尝试每个响应中的问题来弄清楚。不知道为什么没有序列化就可以工作...如果有人知道,请解释。可用的jQuery代码:
$("#form").submit(function(event) {
event.preventDefault();
$("#msgcontainer").html("");
$.ajax({
url: "test.php",
data: {
num: $("#num").val(),
name: $("#name").val()
},
type: "POST",
dataType: "json",
success: function(response) {
$("#msgcontainer").html(response);
}
});
});
感谢您的帮助!
立即有两件事脱颖而出:
data: ("#num").serialize(), ("#name").serialize(),
contentType: "application/json; charset=utf-8",
第一个应该是这样(假设您有两个文本框):
data: {
num: $('#num').val(),
name: $('#name').val()
},
而且该contentType:
行不应在那儿,否则您将有一个空的$_POST
。
最后,event
应该是一个函数参数,即:
$("#form").submit(function(event) {
event.preventDefault();
// ...
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句