2016-11-06 2 views
0

그래서 여기 내 딜레마가 있습니다. .js 파일이 json 데이터를 PHP 파일로 보내고 PHP가이 파일을 받아 SQL 명령을 실행한다는 점을 알고 있습니다. 개발자보기에서 이것이 제대로 실행되고 있음을 알 수 있습니다. 내 문제는 JS 파일의 'function (data) {}'섹션에서 JSON 배열을 올바르게 조작하는 방법이 확실하지 않다는 것입니다. 즉, JSON 값이 반환되었는지 == '성공'했는지 확인하는 방법을 알지 못합니다.JS/JQuery에서 JSON 객체를 읽는 중 PHP가 반환했습니다

도움이나 팁을 주시면 감사하겠습니다.

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

파이어 버그와 함께 ** http ** ** 청원서를 볼 수 있습니까 ??? – ELM

+0

[Firebug] (https://addons.mozilla.org/es/firefox/addon/firebug/) 은 HTTP 요청을 볼 수있는 도구입니다. 먼저 HTTP 요청이 발생하는지 확인해야합니다. JS 함수 (function() {})에서 "alert"를 볼 수 없다면 PHP가 잘못 응답했을 가능성이 있습니다. Firebug로 이것을 볼 수 있습니다. – ELM

관련 문제