我第一次运行$.post()
时,返回正确的数据json数据以运行if语句,但是下次使用$.post()
时它会返回错误,导致if语句无法正常工作。 / p>
我当前的Jquery代码:
$.post('functions/write_settings.php', { dbname: $('#dbname').val(), dbhost: $('#dbhost').val(), dbpassword: $('#dbpassword').val(), dbusername: $('#dbusername').val(), dbprefix: $('#dbprefix').val() }, function(data){
alert("here");
try{var returndata = $.parseJSON(data);}catch(e){/*cont*/}
alert("here1");
if($(returndata).size() >= 1){
for(var i = 0; i < $(returndata).size(); i++){
$("#" + returndata[i]).css('background', 'url(style/install/database/imgs/textbox_error.png)');
}
ResetButton();
alert("here2");
}else{
$.post('functions/check_settings.php', function(data){
alert(data);
var postdata = data;
$.trim(postdata);
if(postdata == 'error'){
alert("test2");
$('#pdbe').show();
$('#pdbe').effect("pulsate", { times:10 }, 10000);
ResetButton();
}else if(data == '0'){
alert('connected!');
}
});
}
});
这是check_settings.php
$cwd = getcwd();
$file = $cwd.'/dbconfig.php';
//check dbconfig created
if(file_exists($file)){
include('./dbconfig.php');
}else{
echo("error2");
die();
}
//grab required vars
$host = $config['db']['host'];
$dbname = $config['db']['dbname'];
//test basic connection
try{
$dbh = new PDO("mysql:host=$host;dbname=$dbname", $config['db']['username'], $config['db']['password']);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}catch(PDOException $e){
echo("error");
die();
}
echo("0");
就像我说的那样,第一个$.post()
返回正确的数据,而第二次使用它时,它将返回错误并导致if语句无法正常工作。
任何有关解决此问题的建议都将不胜感激!
答案 0 :(得分:1)
你的问题是多余的空间?如果是这样,在check_settings.php中,您可能会在不知不觉中打印空格或换行。例如,您可能在第一个之前有空格或新行