【发布时间】:2016-04-23 15:58:08
【问题描述】:
我正在搜索这个网站和其他网站几个小时,所以我变得非常绝望。 这里没有来自许多具有相同主题的问题的代码。
我需要将数据插入数据库并在完成后显示一条消息。另外,我将 AJAX 与 jQuery 一起使用,因此它是异步的。它工作正常,数据被插入,但没有显示响应消息。
我是 PHP 的初学者,无法理解为什么这不起作用。相关代码如下。
PHP 函数调用:
if(isset($_POST["function"]) && !empty($_POST["function"]) && $_POST["function"] == "cl-add") {
$dbb->addMember("MyUsername", $_POST["name"]);
//$dbb is a DataBaseBroker instance
}
来自 Broker 的 PHP 函数:
function addMember($username, $ime) {
$query = "INSERT INTO clan";
$query.=" (username, ime) ";
$query.="VALUES ('".$username."','".$ime."');";
$result = $this->mysqli->query($query);
if ($result) {
echo("You added a member: ".$ime);
} else {
$response = "An error occured. Please try again.";
$response .= "<br>";
$response .= "Error: ".mysqli_error($connection);
echo $response;
}
}
JQuery 函数声明:
var addMember = function(name, responseFn) {
if (name === "") {
alert("Please enter a name");
return;
}
$.ajax({
type : 'POST',
url: '../includes/layout/cl.php',
dataType : 'json',
data : {
'name' : name,
'function' : 'cl-add'
},
success : function(data) {
responseFn(data); //not working, should alert
}
});
}
var responseCallback = function(data) {
alert(data);
}
在$(document).ready()里面:
$(document).on('click', '#cl-add', function(evt) {
var name = $("#cl_frm input").val();
addMember(name, responseCallback);
});
【问题讨论】:
-
问题可能是您应该使用
datatype : 'text'。如果您只是在 php 代码中回显一个字符串,您应该在 ajax 数据类型中处理它。如果您将其作为echo json_encode($my_variable_or_array);回显,则可以将其用作 json 对象。 -
你试过听完成而不是成功回调吗?
-
dataType : 'text',和success : function(data) { alert(data); }检查一次 -
22 分钟检查这些简单的更改?
-
@bucketman 是的,现在有点用了。我做了很多改变试图自己做,我忘了把'json'改回'text'。但现在它也会提醒整个 HTML 表单结构 :) 谢谢你的帮助。
标签: javascript php jquery ajax