Я пытаюсь использовать Ajax (Javascript + php), чтобы проверить, доступно ли имя пользователя, когда пользователь меняет фокус на другое поле формы. Мои функции работают только тогда, когда у меня есть предупреждение(), если я удалю их, функции перестанут работать.Javascript функции работают только с некоторыми «alert()» в нем
Еще одна странная вещь: alert(requestObject.readyState);
показывает только состояние 1. Насколько я понимаю, он должен показывать все состояния или, по крайней мере, состояние 4.
Это мой код javascript, он находится в заголовке HTML-страницы.
var requestObject = false;
function funcReceiveData()
{
alert(requestObject.readyState);
if(requestObject.readyState == 4)
{
if(requestObject.status == 200)
{
var status = requestObject.responseText;
if(status == "ok")
{
document.getElementById('userValid').innerHTML = 'Valid user';
}
else
{
document.getElementById('userValid').innerHTML = 'Choose another username';
}
}
}
}
if (window.XMLHttpRequest)
{
requestObject = new XMLHttpRequest();
}
else if(window.ActiveXObject)
{
requestObject = new ActiveXObject("Microsoft.XMLHTTP");
}
function checkUser()
{
if(requestObject){
requestObject.open("POST", "addUser.php", true);
requestObject.setRequestHeader("Content-type","application/x-www-form-urlencoded");
var user = document.getElementById('username').value;
var tobesent = "username=" + user;
requestObject.send(tobesent);
requestObject.onreadystatechange = funcReceiveData();
alert(tobesent);
}
}
Это часть тела моего HTML код:
<BODY>
<form method="POST" action="addUser.php">
<table>
<tr>
<td><strong>Username:</strong></td>
<td><input type="text" name="username" size="25" onblur="checkUser();" id="username"></td>
<td><i id='userValid'>bla</i>
</tr>
<tr valign="top">
<td><strong>Password:</strong></td>
<td><input type="password" name="password" size="25"></td>
</tr>
<tr valign="top">
<td><strong>Frist name:</strong></td>
<td><input type="text" name="Fname" size="25"></td>
</tr>
<tr valign="top">
<td><strong>Last name:</strong></td>
<td><input type="text" name="Lname" size="25"></td>
</tr>
<tr valign="top">
<td><strong>Address line 1:</strong></td>
<td><input type="text" name="address1" size="50"></td>
</tr>
<tr valign="top">
<td><strong>Address line 2:</strong></td>
<td><input type="text" name="address2" size="50"></td>
</tr>
<tr valign="top">
<td><strong>City:</strong></td>
<td><input type="text" name="city" size="25"></td>
</tr>
<tr valign="top">
<td><strong>Postcode:</strong></td>
<td><input type="text" name="postcode" size="25"></td>
</tr>
<tr valign="top">
<td><strong>Phone:</strong></td>
<td><input type="text" name="phone" size="25"></td>
</tr>
<tr valign="top">
<td><strong>Mobile:</strong></td>
<td><input type="text" name="mobile" size="25"></td>
</tr>
<tr valign="top">
<td><strong>Email:</strong></td>
<td><input type="text" name="email" size="25"></td>
</tr>
<tr>
<td><input type="submit" value="Submit" /></td>
<td><input type="reset" value="Clear" /></td>
</tr>
</table>
</form>
Мой PHP код ниже, это очень глупый код только для проверки. После проверки имени пользователя в базе данных.
<?php
$user = $_POST['username'];
if($user == "Tiago")
echo("ok");
else
echo("Error");
?>
У меня есть страница, размещенная в этом адресе: https://devweb2012.cis.strath.ac.uk/~ntb13105/WAD/tests/Twig/FINAL/addUser.html
Кто-нибудь есть какие-либо понятия о том, что происходит?
Спасибо !!! Теперь работает :) –