我目前正在处理PHP系统的安装脚本。在用户输入他/她的数据库信息后,它应该检查是否可以与它建立连接(使用PDO)。
我试图在后台使用jQuery(ajax)和当然PHP来实现这一目标。虽然我不能完全确定我的PHP代码是否正确,但我的jQuery似乎确实存在问题。它返回自己的整个代码而不是PHP的返回字符串。我希望你们中的任何人都能看到问题所在。我怀疑它与$form
变量有关。但我可能是错的。
这是jQuery部分:
$("#ins_form").on("submit",function(e){
e.preventDefault();
var pass1 = $("#adm_pass1").val();
var pass2 = $("#adm_pass2").val();
if(pass1 != pass2){
$("#background").css({"opacity" : "0.7"}).fadeIn("slow");
$("#pass_error").html("<label class='red'>» The Admin account passwords don't match.</label>").center().fadeIn("slow");
return false;
} else {
$("#background").css({"opacity" : "0.7"}).fadeIn("slow");
$("#pass_error").html("<table><tbody><tr><td>" +
"<img src='layout/images/loading.gif' id='loadgif' />" +
"</td><td>" +
"<label class='black'>Checking database settings</label>" +
"</td></tr></table>").center().fadeIn("slow");
setTimeout(function(){
var $form = $(this);
var $cacheData = $form.find("input");
var serializedData = $form.serialize();
$cacheData.prop("disabled", true);
$.ajax({
url: $form.attr("action"),
type: $form.attr("method"),
data: serializedData,
xhrFields: {
onprogress: function(e){
console.log(e.loaded / e.total*100 + "%");
}
},
success: function(text){
console.log(text);
},
error: function(xhr, textStatus, errorThrown){
alert('request failed');
}
});
}, 2000);
return false;
}
});
这是PHP响应文件:
<?php
require "classes/pdo.class.php";
// Define configuration
define("DB_HOST", $_POST['db_host']);
define("DB_USER", $_POST['db_name']);
define("DB_PASS", $_POST['db_user']);
define("DB_NAME", $_POST['db_pass']);
try {
$db = new Database();
return "Succes!";
} catch {
return "Failed!";
}
?>
答案 0 :(得分:0)
我只是忘了在PHP中正确设置catch:
try {
$db = new Database();
echo "Succes!";
} catch(PDOException $ex){
echo "Failed!";
}
所以你们,我有点失败了。我的错!的xD