=== в javascript и ответ возвращается из файла php ajax

Я использую jQuery для отправки значения в файл PHP через $.post,

$.post("ajax/comment_delete.php", {
comment_id: comment_id
}, function(response){/
if (response == true) {
tr.fadeOut(500, function() {
tr.remove();
})
}
})//$.post

В файле PHP у меня есть:

if (isset($_POST['comment_id'])) {
$comment_id = (int)$_POST['comment_id'];
$comment = comment::find_by_id($comment_id);
if (is_object($comment)) {
echo $comment->delete();
}
}

Все работает правильно, кроме случаев, когда я использую response===true это не сработало. Мой метод удаления возвращает true если комментарий был удален. Когда я alert ответ, это показывает 1; это нормально для 1===true быть ложным? Или что-то не так?

0

Решение

это нормально? или что-то не так?

Это нормально.

Код на стороне сервера испускает значение "1" (или же 1? не имеет большого значения для целей этого сравнения), и является ли это то, что вы хочу Ваш код на стороне сервера — совсем другое дело. Но пока это является Что бы он ни излучал, JavaScript здесь ведет себя нормально.

«1» является «правдивым» в JavaScript. Это значит, что "1" можно считать true для базового сравнения с логическим. Тем не мение, "1" не то же самое тип как trueпоэтому более строгое сравнение (===) не выполняется.

Короче:

  • "1" == true -> да
  • "1" === true -> нет
5

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]