jQuery ajax响应自己的代码


jQuery ajax response own code

我目前正在为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'>&raquo; 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!";
}
?>

我只是忘记在PHP:中正确设置catch

try {
    $db = new Database();
    echo "Succes!";
} catch(PDOException $ex){
    echo "Failed!";
}

所以你,我有点失败了。我的坏!xD