Я использую 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
быть ложным? Или что-то не так?
это нормально? или что-то не так?
Это нормально.
Код на стороне сервера испускает значение "1"
(или же 1
? не имеет большого значения для целей этого сравнения), и является ли это то, что вы хочу Ваш код на стороне сервера — совсем другое дело. Но пока это является Что бы он ни излучал, JavaScript здесь ведет себя нормально.
«1» является «правдивым» в JavaScript. Это значит, что "1"
можно считать true
для базового сравнения с логическим. Тем не мение, "1"
не то же самое тип как true
поэтому более строгое сравнение (===) не выполняется.
Короче:
"1" == true
-> да"1" === true
-> нетДругих решений пока нет …