2016-11-06 59 views
0

因此,這是我的兩難境地。我知道.js文件正在工作,它將json數據發送到PHP文件,PHP接收它並執行SQL命令。開發人員視圖顯示這是正常運行。我的問題是在JS文件的'function(data){}'部分中,我不確定如何正確操作JSON數組,即我不知道如何檢查json值是否返回=='success'。閱讀由PHP返回的JS/JQuery中的JSON對象

任何幫助或提示將不勝感激!

JS代碼:

$(document).ready(function(){ 


$('#login_button').click(function(){ 
    //get values from input text boxes (Email & Password) 
    var email = $('#email').val(); 
    var password = $('#password').val(); 

$.post('http://localhost:8888/php/login.php', {email1:email, password1:password}, function(data) { 
    $("#login_button").html(result); //print JSON returned 
    if (result[0] == "success"){ //check if 'success' returned by PHP file 
     console.log(data); 
     alert('working'); 
     window.location.replace("http://localhost:8888/index.html"); // 
    } else { 
     console.log(data); 
     alert('error'); 
    } 
    // console.log(data); 
}, "json"); 

});//eo login_button 
});//eof 

PHP代碼:

<?php 

//server info 
$servername = "localhost"; 
$username = "root"; 
$dbpassword = "root"; 
$dbname = "personal_data"; 


//Establish server connection 
$conn = new mysqli($servername, $username, $dbpassword, $dbname); 


//Check connection for failure 
if (mysqli_connect_errno()) { 
    $error = (mysqli_connect_error()); 
    echo "error"; 
    exit(); 
} 


print_r($_POST); 
//Read in email & password 
$email = mysqli_real_escape_string($conn, $_POST['email1']); 
$password = mysqli_real_escape_string($conn, $_POST['password1']); 

// echo $email; 
// echo $password; 

$sql = "SELECT Name, Age FROM personal_data WHERE Email='$email' AND Password='$password' LIMIT 1"; 
$result = mysqli_query($conn, $sql); 

if(mysqli_num_rows($result) > 0){ 
     $jsonString = array('result' => 'success'); 
     echo json_encode($jsonString); 
} else { 
    $jsonString = array('result' => 'failure'); 
    echo json_encode($jsonString); 
    } 

mysqli_close($conn); 
?> 

回答

0

成功功能,您應該使用數據

$.post('http://localhost:8888/php/login.php', {email1:email, password1:password}, function(data) { 
    $("#login_button").html(data); //print JSON returned 
    if (data[0] == "success"){ //check if 'success' returned by PHP file 
     console.log(data); 
     alert('working'); 
     window.location.replace("http://localhost:8888/index.html"); // 
    } else { 
     console.log(data); 
     alert('error'); 
    } 
}); 
+0

我實現了這個,但它沒有解決問題:/任何其他想法? –

+0

你可以看到請願**與Firebug的HTTP **? – ELM

+0

那麼,[Firebug](https://addons.mozilla.org/es/firefox/addon/firebug/) 是一個工具,可以讓你查看HTTP請求,首先你應該看看HTTP請求是否發生。如果在JS函數(function(){})中看不到「alert」,PHP可能反應很差。你可以用Firebug看到這個。 – ELM