2017-01-18 2 views
0

Я делаю простой вызов ajax, где я тестирую входное значение, а затем возвращаю true или false. Если это false то я хочу изменить входной цвет на красный мой АЯКС код, как этоткак проверить данные, возвращенные с помощью ajax

$(document).ready(function() { 
    $('input').change(function() { 
     var id2 = $(this).attr('id'); 
     $.ajax({ 
      type: 'POST', 
      url: 'test.php', 
      data: { 
        id1: $(this).val(), 
        id2: $(this).attr('id') 
        }, 
      success: function(data) 
      { 
       if(data == false) { 
        $('#'+id2+'').addClass('red'); 
       } 

      } 
     }); 
    }); 
}); 

и мой test.php, как это

require_once('index.php'); 
$x=intval($_POST['id1']); 
$yy=intval($_POST['id2']); 
$output= tester($x,$yy); 
echo $output; 
function tester($x,$y){ 
    if($solutions[$y]==$x) 
     return true; 
    else 
     echo false; 
} 

Этот код прекрасно работает без if заявления. Я хочу проверить данные, чтобы добавить класс, который меняет цвет ввода на красный. Но этот код не работает для меня.

+0

использовать РНР 'json_encode()' и 'JavaScript в JSON.parse() ' – bassxzero

+1

Почему вы делаете echo вместо return for false? echo просто собирается распечатать false, а не возвращать ответ как false – DinoMyte

+0

Ссылка http://stackoverflow.com/questions/36810391/how-to-get-true-or-false-from-php-function-using-ajax – roybman

ответ

0

Попробуйте JSON.parse:

if(JSON.parse(data) == false) { 
    $('#'+id2+'').addClass('red'); 
} 

А в вашем PHP добавить json_encode() и вернуть ложное:

$yy=intval($_POST['id2']); 
$output= tester($x,$yy); 
echo json_encode($output); 
function tester($x,$y){ 
    if($solutions[$y]==$x) 
      return true; 
     else 
      return false; 

} 
+0

спасибо, но он не работает, я не получаю красный цвет –

+0

Вы проверили ошибку? error: function (err) {alert (err)} –

+0

Я только что проверил журнал консоли, ответ - полная html-страница; это нормально? –

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