【问题标题】:Jquery steps with ajax confirmtion带有ajax确认的Jquery步骤
【发布时间】:2020-07-02 23:53:43
【问题描述】:

下午好,我的代码卡住了。所以基本上我要做的是检查数据库是否已连接,如果是 进入下一步,如果没有则停留在同一步骤,仅显示警报。但是即使它没有连接,它也会进入下一步......

到目前为止我所拥有的:

页面顶部:

if (isset($_POST['credentials'])) {
// Database credentials
define('DBHOST', $_POST['database_host']);
define('DBUSER', $_POST['database_name']);
define('DBNAME', $_POST['database_username']);
define('DBPASS', $_POST['database_password']);

try {
    $db = new PDO("mysql:host=".DBHOST.";dbname=".DBNAME, DBUSER, DBPASS);
    $db -> exec("SET CHARACTER SET utf8");
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

   echo 'Connected';
exit;   

} catch(PDOException $e) {
    //show error
    echo '<p class="bg-danger">'.$e->getMessage().'</p>';
}


}

脚本标签中的页面底部

$("#wizard").steps({
    headerTag: "h3",
    bodyTag: "section",
    transitionEffect: "none",
    titleTemplate: '<span class="number">#index#</span><span class="bd-wizard-step-title">#title#</span>',
    
    onStepChanged: function(event, currentIndex, priorIndex){
        if (currentIndex == 1) {
            var database_host = $('#hostname').val();
            var database_name = $('#name').val();
            var database_username = $('#username').val();
            var database_password = $('#password').val();
            
            
            $.ajax({
                 url  : "<?= $_SERVER['PHP_SELF'] ?>",
                 type : "POST",
                 async: false, 
                 dataType: 'text',
                 data : 
                 {
                    'credentials' : 1,
                    'database_host' : database_host,
                    'database_name' : database_name,
                    'database_username' : database_username,
                    'database_password' : database_password
                 },
                success:function(re){
                    if (re == "Connected") {
                        alert("Connected");
                    } else {
                        alert("Rejected");
                        return false;
                    }
                }
            });

        }
    }
});

任何想法如何解决它?我将不胜感激

P.S:我已经输入了“return false;”但仍要进行下一步...

I am using http://www.jquery-steps.com

【问题讨论】:

  • Async false 在这里无济于事,因为无论如何,您来自 PHP 的响应都将被视为“成功”回调(它返回了带有正文的 200 代码)。成功返回 false 只是从该函数返回 false (无处可去)。

标签: javascript php jquery


【解决方案1】:

AJAX 默认是异步的,你需要将 async 设置为 false 我相信:jQuery wizard steps move before ajax call completed

【讨论】:

  • 如您所见,我的代码中的 async 已为 false ..
  • 啊抱歉刚刚看到,你确定它没有抛出错误吗?尝试添加一个错误处理程序,看看是否是问题所在?
猜你喜欢
  • 2017-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多