저는 AJAX를 처음 사용합니다. 나는 일할 간단한 로그인 스크립트를 얻으려고 노력하고있다. 이것은 jQuery 1.6.4를 사용하고 있습니다. 아래의 AJAX에서 사용자가 버튼을 클릭하면 login.php에 전자 메일 주소와 암호가 전송됩니다. 모두 잘 작동하는 것 같습니다. 문제는 성공 기능입니다. 이메일과 비밀번호가 맞으면 true를 반환해야합니다. 작동하지 않으면 false를 반환해야합니다. Firebug를 사용하면 console.log와 함께 작동하는 것을 볼 수 있습니다. 또한 경고 (응답)를 쓰면 제대로 작동합니다. 그러나 조건부는 응답이 참일 때도 항상 거짓으로 평가됩니다. 나는 if(response=="true")
과 if(response==="true")
을 시도해 보았습니다. 변수를 함수 외부에 두는 것 외에도 성공하지 못한 몇 가지 사항이있었습니다. 누구든지이 문제를 해결하는 방법에 대한 아이디어가 있습니까?PHP의 jQuery의 AJAX 응답에 어려움이 있습니다.
도움이나 의견 감사합니다. Jason.
AJAX : 도움이된다면,이 내 login.php 스크립트가
$("#firstpage").live('pageinit', function (evt) {
$('#button').click(function(){
var $form = $('#login'),
$inputs = $form.find("input"),
serializedData = $form.serialize();
$.ajax({
type: 'POST',
url: 'php/login.php',
data: serializedData,
success: function(response){
console.log("Response: "+response);
if(response=="true")
{
$('#firstpage #wrong').text("Login script is working");
} else {
$('#firstpage #wrong').text("Your email and password combination did not match.");
}
},
dataType: 'json'
});
});
});
입니다.
$email = $_POST['email'];
$password = $_POST['password'];
require_once("DB.php");
$connection = mysql_connect($host, $user, $pass) or die ("Unable to connect!");
mysql_select_db($db) or die ("Unable to select database!");
$query = "SELECT * FROM member WHERE email='$email' AND password='".md5($_POST['password'])."'";
$result = mysql_query($query) or die ("Error in query: $query. ".mysql_error());
$num_rows = mysql_num_rows($result);
if($num_rows>0){
$output = true;
} else {
$output = false;
}
echo json_encode($output);
내가 돈을 ' 그 대답이 어떻게 "참"일 수 있는지 보아라. 아마도 '사실'은 아니고 '사실'이 아닐 수 있습니다. 브라우저의 검사기 (유형 F12)를보고 응답에 실제로 무엇이 있는지 확인하십시오. –
나는 'String'true "와"Bool true "를 얻을 수 있도록 할 것이다. PHP에서'$ output = "success"'로 변경하고 Javascript에서'response === "success"'로 변경하거나 좀 더 의도적으로 변경하여 문제를 좁힐 수 있습니다. – potench
'typeof response == 'boolean''와 같은 것을 시도하십시오 – jwerre