|
|
|
| Написал мини пример, кому не сложно прошу помочь...
Итак есть, страницы:
index.html
<form action="submit.php" method="POST">
<b>Заголовок:</b> <br><input type="text" name="name"> <br>
<b>Описание:</b> <br><textarea name="text"></textarea><br>
<input type="submit" value="Отправить">
</form>
|
А также:
submit.php
<?php
$name = $_POST['name'];
$text = $_POST['text'];
$query="insert into tbl values(0,'$name','$text')";
$ok=mysql_query($query) or die(mysql_error());
?>
|
Как с помощью аякса отправить данные, без обновления страницы?
===================================
А также вывод:
Есть скрипт:
<?
$result=mysql_query("select * from tbl);
while($row=mysql_fetch_array($result)){
echo " <hr> Имя: $row[name] <br> Текст: $row[text] <hr>
}
?>
| Вопрос состоит в том, как обновлять данные каждые 5 секунд, без перезагрузки страницы.
Выражаю большую благодарность! Тому кто поможет, очень хотелось бы освоить этот Аякс -)
Спасибо!
Я думаю эта тема пригодится не только мне, а многим с этого форума.
По поводу поиска, искал, ничего дельного не нашёл, кому не сложно помогите, отправлять в поиск не нужно... | |
|
|
|
|
|
|
|
для: bartik
(17.08.2007 в 01:29)
| | По первому вопросу. В index.html:
<form id="form_1" action="submit.php" method="POST">
<b>Заголовок:</b> <br><input type="text" name="name"> <br>
<b>Описание:</b> <br><textarea name="text"></textarea><br>
<input type="submit" value="Отправить">
</form>
<script type="text/javascript">
<!--
function setRequestMode(form)
{
form.onsubmit = function()
{
vars = new Array();
for(i=0; i<this.elements.length; i++)
{
vars[vars.length] = this.elements[i].name + "=" + this.elements[i].value;
}
var ajax = document.all ? new ActiveXObject("Msxml2.XMLHTTP") : new XMLHttpRequest();
ajax.open("POST", this.action);
ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=windows-1251");
ajax.send(vars.join("&"));
return false;
}
}
setRequestMode(document.getElementById('form_1'));
//-->
</script>
|
По второму.
В файле интерфейса:
<div id="data"></div>
<script type="text/javascript">
<!--
function getData()
{
var ajax = document.all ? new ActiveXObject("Msxml2.XMLHTTP") : new XMLHttpRequest();
var now = new Date();
ajax.open("GET", "http://site.ru/script.php?noCashe="+now.getMilliseconds());
ajax.onreadystatechange = function()
{
if(ajax.readyState == 4)
{
document.getElementById("data").innerHTML = ajax.responseText;
setTimeout("getData()", 500);
}
}
ajax.send(null);
}
getData();
//-->
</script>
|
В script.php - ваш код, только без опечаток:
<?
$result=mysql_query("select * from tbl");
while($row=mysql_fetch_array($result))
{
echo " <hr> Имя: $row[name] <br> Текст: $row[text] <hr>";
}
?>
|
Еще учтите, что русские симолы будут подгружены некорректно. Их придется кодировать на стороне сервера и раскодировать у клиента.
ps. Код не годится для Оперы. Делается ли там это и как - понятия не имею. Я для Оперы писал дублирующий код с невидимым фреймом. Еще есть кроссбраузерная библиотека Дмитрия Котерова (http://dklab.ru), реализующая псевдопротокол JsHttpRequest посредством динамической генерации тега <script>. | |
|
|
|
|
|
|
|
для: Shiva
(17.08.2007 в 06:01)
| | Первый пример у меня не работает, нажимаю отправить, ноль внимания.
Может быть где-то ошибка?
-------
За второй пример большое спасибо, всё работает! | |
|
|
|
|
|
|
|
для: bartik
(17.08.2007 в 13:03)
| | Я проверил, у меня работают оба.
Поместите в целевой файл:
<?php
ob_start();
print_r($_POST);
$content = ob_get_contents();
$open = fopen('test.txt', 'w');
fwrite($open, $content);
fclose($open);
?>
|
И протестируйте. Должен появиться файл test.txt с распечаткой массива $_POST.
Файлы index.html и submit.php лежат в одной папке? | |
|
|
|
|
|
|
|
для: Shiva
(17.08.2007 в 14:01)
| | Прошу прощения всё работает, просто хотелось бы какую нибудь надпись чтоли, что запись добавилась.. А то не понятно... | |
|
|
|
|
|
|
|
для: bartik
(17.08.2007 в 18:40)
| |
function setRequestMode(form)
{
form.onsubmit = function()
{
vars = new Array();
for(i=0; i<this.elements.length; i++)
{
vars[vars.length] = this.elements[i].name + "=" + this.elements[i].value;
}
var ajax = document.all ? new ActiveXObject("Msxml2.XMLHTTP") : new XMLHttpRequest();
var now = new Date();
ajax.open("POST", this.action);
ajax.onreadystatechange = function()
{
if(ajax.readyState == 4)
{
alert("ok");
}
}
ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=windows-1251");
ajax.send(vars.join("&"));
return false;
}
}
|
| |
|
|
|
|
|
|
|
для: Shiva
(17.08.2007 в 20:17)
| | Благодарю за помощь. | |
|
|
|