Пытаюсь, наконец, разобраться, что за зверь такой - ajax
Посему написал такой код (вернее нашел и немного отредактировал, а именно строку
request.open("GET", url, true) заменил на 3 строки, да еще и параметр GET на POST поменял).
файл index.php:
<script language="JavaScript">
var request;
var dest;
function processStateChange(){
if (request.readyState < 4) document.getElementById(dest).innerHTML = "Загрузка...";
if (request.readyState == 4){
contentDiv = document.getElementById(dest);
if (request.status == 200){
response = request.responseText;
contentDiv.innerHTML = response;
} else {
contentDiv.innerHTML = "Error: Status "+request.status;
}
}
}
function loadHTML(URL, destination){
dest = destination;
var username = document.getElementById("username").value;
var password = document.getElementById("password").value;
var email = document.getElementById("email").value;
if (window.XMLHttpRequest){
request = new XMLHttpRequest();
request.onreadystatechange = processStateChange;
request.open("POST", username, true);
request.open("POST", password, true);
request.open("POST", email, true);
request.send(null);
} else if (window.ActiveXObject) {
request = new ActiveXObject("Microsoft.XMLHTTP");
if (request) {
request.onreadystatechange = processStateChange;
request.open("POST", username, true);
request.open("POST", password, true);
request.open("POST", email, true);
request.send();
}
}
}
</script>
</head>
<body>
<input type="text" name="username" id="username"><br>
<input type="password" name="password" id="password"><br>
<input type="text" name="email" id="email"><br>
<input type="button" onclick="loadHTML('test.php', 'dest')" value="Зарегестрироваться">
<div id="dest"></div>
</body>
файл test.php:
<?php
$link = mysql_connect("localhost", "admin", "1234") or die(mysql_error());
mysql_select_db("game", $link);
$sql="INSERT INTO `users` (`username`,`password`,`email`) VALUES ('$username','$password','$email')";
if(mysql_query($sql))
$status = "Новый пользователь ".$username." успешно зарегестрирован!";
$status = "Ошибка регистрации пользователя!";
echo $status;
?>
Заполняю поля, нажимаю кнопку, пишет Error: Status 404
Кто-нибудь, подскажите пожалуйста, где у меня ошибка?
Спустя 1 час, 21 минута, 43 секунды (29.06.2010 - 03:45) dr_Lev написал(а):
в метод open передаешь не те параметры, да и три раза открывать запрос не нужно:
function loadHTML(URL, destination){
dest = destination;
var postData = {
username : document.getElementById("username").value,
password : document.getElementById("password").value,
email : document.getElementById("email").value
}
if (window.XMLHttpRequest){
request = new XMLHttpRequest();
request.onreadystatechange = processStateChange;
request.open("POST", URL, true);
request.send(postData);
} else if (window.ActiveXObject) {
request = new ActiveXObject("Microsoft.XMLHTTP");
if (request) {
request.onreadystatechange = processStateChange;
request.open("POST", URL, true);
request.send(postData);
}
}
}
Спустя 5 часов, 57 минут, 11 секунд (29.06.2010 - 09:42) Rigel написал(а):
dr_Lev
таким способом что-то ничего не пишет и строку в бд не добавляет
таким способом что-то ничего не пишет и строку в бд не добавляет
Спустя 1 час, 37 минут, 26 секунд (29.06.2010 - 11:20) NoCash написал(а):
помоему в коде и нет записи для добавления в базе
чето вроде этого submit.getElementById("username").value;
чето вроде этого submit.getElementById("username").value;
Спустя 2 часа, 34 минуты, 40 секунд (29.06.2010 - 13:54) Gabriel написал(а):
Rigel
глобальные переменные включены? или просто не показал как переменные определяеш?
глобальные переменные включены? или просто не показал как переменные определяеш?
Спустя 2 часа, 48 минут, 25 секунд (29.06.2010 - 16:43) Rigel написал(а):
Gabriel
register_globals On On
включены
register_globals On On
включены
Спустя 20 часов, 17 минут, 23 секунды (30.06.2010 - 13:00) Rigel написал(а):
Больше знатоков аякса нет?
Спустя 13 минут, 36 секунд (30.06.2010 - 13:14) linker написал(а):
Проверяйте урл, ошибка 404 означает всего навсего, что файл не найден