【发布时间】: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;”但仍要进行下一步...
【问题讨论】:
-
Async false 在这里无济于事,因为无论如何,您来自 PHP 的响应都将被视为“成功”回调(它返回了带有正文的 200 代码)。成功返回 false 只是从该函数返回 false (无处可去)。
标签: javascript php jquery