Итак, вот что я пытаюсь сделать. У меня есть форма, и одним из значений является имя пользователя. Я хочу проверить, существует ли это имя пользователя в базе данных. Поэтому я установил функцию JavaScript в качестве onsubmit
для формы. В функции у меня есть
xhttp.open("POST","AjaxTest.php",false);
xhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xhttp.send("Username=Leroy1981&Found=0");
A он направляет к нужному файлу, но Я не знаю, как получить доступ к данным, отправленным в команде отправки, и я до сих пор не знаю, как отправить результат после того, как файл php проверил базу данных на наличие предоставленного имени пользователя. Username является типом ввода в форме, поэтому он отправляется, но я получаю неопределенную константу для Found.
Другой вопрос, как установить ответ XMLHttpRequest
в файле php? Я, вероятно, мог бы понять, как получить это и просто отправить «Найдено» или «Не найдено», но не знаю, как получить к нему доступ в файле php. Кроме того, он не возвращается автоматически из php-файла, когда это делается, как я думал, это сработало.
Кстати, супер новичок в веб-программировании. В случае, если эта часть не была очевидна
Я проголосовал за то, чтобы закрыть это как дубликат, как это действительно кажется. Если это НЕ так, отредактируйте свой вопрос, указав гораздо больше кода, включая полный набор кода, который вы пытаетесь использовать, с подробностями о том, почему и где он НЕ работает, чтобы мы могли помочь вам лучше.
xhttp.open("POST","AjaxTest.php",false);
— Вы делаете синхронный запрос. Это устарел и блокирует пользовательский интерфейс, пока запрос находится в полете. Не делай этого.
«как мне установить ответ XMLHttpRequest в файле php» — так же, как вы устанавливаете ответ в любом другом файле PHP. Тот факт, что запрос был инициирован JS, не имеет значения.
I don't know how to access the data send in the send command
в ajaxtest.php данные будут в массиве $_POST.
Это дает мне ошибку, когда я обращаюсь к $_POST[]. Неопределенная константа или идентификатор. сейчас на работе, проверить не могу
Вы можете вызвать свой файл с помощью этой функции
function loadDoc() {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("demo").innerHTML =
this.responseText;
}
};
xhttp.open("GET", "AjaxTest.php?Username=Leroy1981", true);
xhttp.send();
}
Вывод будет в переменной this.responseText
Ваш файл PHP должен выглядеть примерно так
$user = $_GET['User'];
//Your db operations
$yourResponse = "whatever you want";
echo $yourResponse; //This will be your responseText in JavaScript
Итак, что бы я ни повторил в конце php-скрипта, это то, что тогда находится в responseText? Думаю, я мог бы использовать GET, просто отправив имя пользователя и установив для $_POST['username] значение EMPTY, если его еще нет в базе данных.
Спасибо за информацию. Посмотрел и увидел, что так оно и есть. Об эхо-настройке responseText
Если мой ответ помог вам, отметьте его, чтобы другие люди с такой же проблемой могли его увидеть
Другой вопрос, как мне установить ответ XMLHttpRequest в файле php? Вероятно, я мог бы понять, как получить это и просто отправить «Найдено» или «Не найдено», но не знаю, как получить к нему доступ в файле php. Кроме того, он не возвращается автоматически из php-файла, когда это делается, как я думал, это сработало.