2016-03-18 8 views
1

Итак, моя проблема в том, что моя функция успеха Ajax работает неправильно, но РАБОТАЕТ правильно на другой веб-странице. Раздражение? Они имеют один и тот же код (скопировать его и отредактировать) с разными переменными, конечно.Функция успеха Ajax не работает должным образом

Рабочий код:

 $.ajax({ 
     type: 'POST', 
     url: 'login.php', 
     data: { 
       uname: username, 
       pass: password 
       }, 
     success: function(html){  

     alert(html); 
     if(html=='true') { 
     $("#add_err").html("right username or password"); 
     window.location="../home.php"; 
     } 
     else { 
     $("#add_err").css('display', 'inline', 'important'); 
     $("#add_err").html("<img src='images/alert.png' />Wrong username or password"+username+password); 

     } 
     }, 

     beforeSend:function() 
     { 
     $("#add_err").css('display', 'inline', 'important'); 
     $("#add_err").html("<img src='images/ajax-loader.gif' /> Loading...") 
     } 
     }); 

login.php просто повторяют слово «истинный» или «ложный» в зависимости от запроса.

Это не рабочий код:

$.ajax({ 
     type: 'POST', 
     url: 'loginphp.php', 
     data: { 
       username1: username, 
       password1: password 
       }, 

     success: function(html){  

     alert(html); 
     if(html=='true') 
     { 
      $("#errorlogin").html("right username or password"); 
      window.location="../php/home.php"; 
     } 
     else 
     { 
      $("#errorlogin").css('display', 'inline', 'important'); 
      $("#errorlogin").html("<img src='images/alert.png' />Wrong username or password"+username+password); 
     }   

     }, 



     beforeSend:function() 
     { 
     $("#errorlogin").css('display', 'inline', 'important'); 
     $("#errorlogin").html("<img src='images/ajax-loader.gif' /> Loading...") 
     } 
     }); 

Loginphp.php просто повторяет слово «истинное» или «ложное» в зависимости от запроса.

, как вы можете видеть, они технически одинаковы, но не работает, что происходит, даже если функция loginphp.php повторила TRUE, функция успеха перейдет непосредственно на ELSE.

Я знаю, что это действительно эхом ИСТИНА, потому что я использовал «alert (html)», и он действительно показывает TRUE.

Но в рабочем коде запускается «if (html == 'true')». Я не знаю, что происходит ..

+0

Сравнение строк чувствительны к регистру. Возвращает ли loginphp.php "true" или "TRUE" или какой-либо другой вариант? –

+0

возвращает строку, которая точно «истинна». Я уже исправил это, но я не узнал настоящую проблему. Я просто использовал рабочий код и заменил переменные. Не могли бы вы рассказать мне, что я буду делать по этому вопросу? есть, как уже набранная кнопка? –

ответ

0

Вы должны конец цитаты к истинному:

if(html==true) //or just, if(html) 

В противном случае он будет искать строку «правда», и именно поэтому он идет к другому части.

0

Вы можете использовать if(html){}, который будет работать для любого значения html, за исключением ложных.

0

попробовать на login.php в конце

echo json_encode(array("msg"=>"true")); 

или в случае успеха вы можете проверить, как этот

if(html.msg == "true") 
{} 

попробовать это может быть помочь

Смежные вопросы