我正在搜索此站點和其他站點幾個小時,所以我越來越絕望。 這裏沒有相同主題的許多問題的代碼工作。來自PHP腳本的AJAX響應不起作用
我需要將數據插入數據庫並在完成後顯示消息。另外,我在jQuery中使用AJAX,所以它會是異步的。它工作得很好,數據被插入,但沒有響應消息顯示。
我是PHP的初學者,不能無視這爲什麼不起作用。下面的相關代碼。
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函數聲明:從代理
if(isset($_POST["function"]) && !empty($_POST["function"]) && $_POST["function"] == "cl-add") {
$dbb->addMember("MyUsername", $_POST["name"]);
//$dbb is a DataBaseBroker instance
}
PHP函數
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).on('click', '#cl-add', function(evt) {
var name = $("#cl_frm input").val();
addMember(name, responseCallback);
});
的問題可能是,你應該使用'數據類型:「text''。如果你只是在php代碼中回顯一個字符串,你應該在ajax數據類型中處理它。如果你將它作爲echo echo json_encode($ my_variable_or_array);''你可以將它用作json對象。 – bucketman
你有沒有試過聽完成而不是成功回調? –
dataType:'text','and'success:function(data){alert(data); }'檢查一次 –