我正在爲我工作的地方建立時間管理系統。在編寫代碼時,我創建了一個系統,用戶可以配置數據庫詳細信息(如wordpress首次運行安裝),一旦數據成功保存,我想顯示下一步。我有一個不工作的AJAX功能
第一部分是完美的工作,但我遇到了第二部分的問題,系統檢查連接並開始創建數據庫和所需的表。
到目前爲止,我一直在使用JSON發送和接收PHP
響應文本。但是現在我想創建一個AJAX
函數,與JSON
相同。但問題是AJAX
功能正在發送數據,但我無法獲得響應文本。
我經歷了大部分SO標題,當我做了谷歌搜索(可能錯過了一次),但他們都沒有工作。當我嘗試從alert
獲得輸出時,它在彈出窗口上顯示爲oject [Object]。
下面是我的jquery,裏面有我編寫的AJAX
。
function checkResponse(){
var res = $('#response').text();
if(res === "Saved"){
$.ajax({
url: './bin/config/createConfig.php',
type:'get',
data:{check:'check'},
dataType:'json',
complete: function (data) {
alert(data.responseText);
}
});
// $('#nextstep').show();
// $('#dbConfig-details').hide();
}
}
上面的函數被下面的setTimeOut
調用。
if(noEmpty && confirm('Are you sure all details to be true?')){
createConfig();
setTimeout('checkResponse();', 1000);
}
這是上面AJAX
發送數據到的PHP。
if (!empty($_REQUEST["check"])){
if(file_exists('../iConnect/node.php')){
$readFile = file_get_contents('../iConnect/node.php');
$dataTxt = unserialize($readFile);
extract($dataTxt);
try{
$dbConnect = new PDO('mysql:host='.$dbHost.';dbname='.$dbName,$dbUser,$dbPass);
$dbConnect -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connected";
}catch(PDOException $ex){
echo "ERROR: ".$ex->getMessage();
exit();
}
}else{
echo "File missing";
}
}
的creatCofig()
代碼。
function createConfig(){
var dbUser = document.getElementById("dbUser").value,
dbPass = document.getElementById("dbPass").value,
dbName = document.getElementById("dbName").value,
dbHost = document.getElementById("dbHost").value;
if(window.XMLHttpRequest){
xmlhttp=new XMLHttpRequest();
}else{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function(){
if(xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("response").innerHTML=xmlhttp.responseText;
}
};
xmlhttp.open("POST","./bin/config/createConfig.php?dbUser="+dbUser+"&dbPass="+dbPass+"&dbName="+dbName+"&dbHost="+dbHost,true);
xmlhttp.send();
}
我知道我錯過了與AJAX
的東西,但我的知識僅限於AJAX
可以有一個人請告訴我什麼是我做錯了。
它顯示'對象[對象]'因爲你返回一個對象!這是完美的預期行爲。因爲你告訴jquery你返回的json,它將json解析爲一個對象。 – Liam
'if(noEmpty && confirm('你確定所有的細節都是真實的嗎?')){ createConfig(); setTimeout(function(){checkResponse();},1000); }' –
我已經閱讀了3次評論,我不知道你想說什麼。這是一個對象,檢查它,看看它包含什麼 – Liam