Обнуление результата ajax запроса
Подскажите пожалуйста:
Есть кнопка при нажатии на которую появляется оверлейное окно с полем input, в котором вбиваем некое название и отправляем php скрипту, скрипт пишет в БД и выводит результат. Все нормально работает. Проблема вот в чем: При повторном открытии оверлейной формы, предыдущий результат работы php скрипта не обнуляется. Вот код:
<script>
//Вызов оверлейного окна
function WindowVirtualOrg()
{
var div = document.getElementById('WindowVirtualOrg');
if(div.style.display == 'none')
{
div.style.display = 'block';
}
}
//Выполнение ajax запроса
function start(){
xhttp=new XMLHttpRequest();
xhttp.onreadystatechange=function(){
if (xhttp.readyState==4 && xhttp.status==200)
document.getElementById('ajax').innerHTML=xhttp.responseText;
}
xhttp.open('POST','php/test.php',true);
<!--Установим тип передаваемого содержимого как у форм-->
xhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
var data=document.getElementById('name_virtual_org').value;
if(data)
{
xhttp.send('name='+data);
document.getElementById('form_name_virtual_org').reset();
}
else
{
document.getElementById('ajax').innerHTML='';
document.forms.form_name_virtual_org.name_virtual_org.focus();
}
}
</script>
//html форма отправки <form id='form_name_virtual_org'> <input type='text' id='name_virtual_org' autofocus><button onclick='start()'><img src='pic/24/save_24.png'>Сохранить</button> </form> <div id='ajax'></div> И php код: <?php session_start(); $db_link_default = mysqli_connect( '127.0.01', /* Хост, к которому мы подключаемся */ 'root', /* Имя пользователя */ '158964', /* Используемый пароль */ 'xz'); /* База данных для запросов по умолчанию */ if(!$db_link_default) { echo ("Невозможно подключиться к базе данных. Код ошибки: %s\n"); } //Входные данные $name=$_POST[name]; /* Посылаем запрос серверу */ $result= mysqli_query($db_link_default,"select count(*) from virtual_organizations where name='$name'"); $row = mysqli_fetch_row($result); if(!$row[0]) { $insert=mysqli_query($db_link_default,"insert into virtual_organizations (name) value('$name')"); echo "<img src='pic/24/apply_24.png'>Сохранено значение «$name»"; /* Освобождаем используемую память */ mysqli_free_result($result); } else { echo "<img src='pic/24/alert_24.png'>Организация с именем уже есть! "; } /* Закрываем соединение */ mysqli_close($db_link_default); ?> |
Цитата:
вам инпут нужно очистить?
document.getElementById('name_virtual_org').value="";
а вы уверенны что у вас эта форма есть? document.getElementById('form_name_virtual_org').r eset(); |
Цитата:
|
Цитата:
|
dmitriymar,
|
Цитата:
и у devote, не кешируется :) |
:lol: Точно - мну соврал
|
Так вообще не работает:
xhttp.open('POST','php/test.php?'+Math.random(),true);
А так работает только если ajax запрос не выполнять, т.е при первом вызове оверлейной формы, но не выполняя запрос:
document.getElementById('form_name_virtual_org').reset();
|
Все спасибо разобрался.
|
| Часовой пояс GMT +3, время: 05:34. |