#javascript
#javascript
Вопрос:
Все работает нормально, данные передаются по URL-адресу, и данные отлично помещаются в базу данных. Единственная проблема, с которой я сталкиваюсь, заключается в том, что приведенный ниже код находится на моем index.php страница, она отправляет данные в submitusername.php страница, и все работает, однако после отправки данных на страницу submitusername URL превращается в «/index.php?username =blahblahblah» это не серьезная проблема, но это то, что я хотел бы узнать, как исправить / что является ее причиной.
function submitUsername(){
var submitData = new XMLHttpRequest();
var username = document.getElementById('username').value;
submitData.onreadystatechange = function() {
if(submitData.readyState == 4 amp;amp; submitData.status == 200) {
callback(submitData.responseText);
}
},
submitData.open("GET", "submitusername.php?username=" encodeURIComponent(username), true);
submitData.send();
}
Комментарии:
1. Ничто в показанном вами коде не сделало бы этого. Как вы вызываете функцию? Что
callback()
делает?2. Я предполагаю, что у вас есть форма с
onsubmit="submitUsername()"
. Это вызывает функцию, но затем она отправляет форму обычным образом. Если форма имеетmethod="GET"
, она изменит URL.
Ответ №1:
Ничто в предоставленном вами коде не будет иметь того эффекта, который вы описываете.
Звучит так, как будто вы пытаетесь запустить JavaScript при отправке формы, но форма отправляется нормально и загружает новую страницу.
Вам необходимо предотвратить поведение формы по умолчанию при отправке.
Измените вашу функцию обработчика событий, чтобы захватить объект события и предотвратить поведение по умолчанию, затем убедитесь, что вы соответствующим образом привязали обработчик событий.
function submitUsername(evt){
evt.preventDefault
var submitData = new XMLHttpRequest();
и
document.getElementById('myform').addEventListener('submit', submitUsername);