#php #javascript #ajax
#php #javascript #ajax
Вопрос:
У меня есть эта простая функция
function Login()
{
var x=prompt("Please enter your name","");
var xmlhttp;
if (window.XMLHttpRequest)
{// Използваните браузъри
xmlhttp=new XMLHttpRequest();
}
else
{// Кой ли ползва тези версии..
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","login.php?u=" x,true);
xmlhttp.send();
}
Проблема заключается в том, что пользователь решает выйти из окна запроса, нажав ESC.Может ли кто-нибудь объяснить мне, что именно происходит с переменной x в этом случае.Я прихожу к выводу, что ему присваивается значение ‘null’, а под null я подразумеваю строку, потому что когда я проверяю с
If(!is_null($u))
мой скрипт не работает, но если я заменю это на
If($u!='null')
тогда все работает просто отлично, так что не мог бы кто-нибудь объяснить мне, что на самом деле происходит со значением окна запроса при выходе из него с помощью нажатия ESC?
Ответ №1:
x
получит null
значение, когда пользователь отменит запрос, поэтому:
var x=prompt("Please enter your name","");
if (x === null) {
// User canceled
}
Ответ №2:
Оно возвращается так, как если бы вы нажали «Отмена».
Оно null
не в виде строки ..
alert( prompt('') === null );
будет предупреждать, true
если вы нажмете Esc кнопку отмены
Комментарии:
1. Тогда почему, когда я получаю значение x в файле PHP и выполняю проверку
2. @Leron, значение является фактическим
null
. но вы неявно преобразуете его в строку, поскольку добавляете его в единицу, когда выполняете"login.php?u=" x
. В javascript попробуйтеalert(typeof null)
иalert(typeof ('' null) )
. Так что да, на стороне PHP вы получите"null"
в виде строки.