Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.06.2012, 20:49
Интересующийся
Отправить личное сообщение для Eser Посмотреть профиль Найти все сообщения от Eser
 
Регистрация: 06.12.2011
Сообщений: 25

Обнуление результата 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'>Сохранено значение &laquo$name&raquo";

/* Освобождаем используемую память */
mysqli_free_result($result);
}
else
{
echo "<img src='pic/24/alert_24.png'>Организация с именем уже есть! ";
}

/* Закрываем соединение */
mysqli_close($db_link_default);

?>
Ответить с цитированием
  #2 (permalink)  
Старый 25.06.2012, 21:00
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Сообщение от Eser
При повторном открытии оверлейной формы, предыдущий результат работы php скрипта не обнуляется.
ну а причём здесь код тот что вы привели?
вам инпут нужно очистить?
document.getElementById('name_virtual_org').value="";

а вы уверенны что у вас эта форма есть?
document.getElementById('form_name_virtual_org').r eset();
Ответить с цитированием
  #3 (permalink)  
Старый 25.06.2012, 21:01
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от Deff
посоль браузер кеширует запрос
ты чего... POST-запросы браузеры не кешируют.
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #4 (permalink)  
Старый 25.06.2012, 21:01
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Сообщение от Deff
Cкорее всего повторного запроса просто нет - посоль браузер кеширует запрос
Пробуйте так:

xhttp.open('POST','php/test.php?'+Math.random(),true);
пост не кешируется. гет кешируется
Ответить с цитированием
  #5 (permalink)  
Старый 25.06.2012, 21:05
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

dmitriymar,
Гы у мну всё кешируецо , особливо в ИЕ

Последний раз редактировалось Deff, 25.06.2012 в 21:35.
Ответить с цитированием
  #6 (permalink)  
Старый 25.06.2012, 21:06
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Сообщение от Deff
Гы у мну всё кешируецо , особливо в ИЕ
неправильный комп. пост не кешируется
и у devote, не кешируется
Ответить с цитированием
  #7 (permalink)  
Старый 25.06.2012, 21:34
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Точно - мну соврал
Ответить с цитированием
  #8 (permalink)  
Старый 25.06.2012, 22:17
Интересующийся
Отправить личное сообщение для Eser Посмотреть профиль Найти все сообщения от Eser
 
Регистрация: 06.12.2011
Сообщений: 25

Так вообще не работает:
xhttp.open('POST','php/test.php?'+Math.random(),true);


А так работает только если ajax запрос не выполнять, т.е при первом вызове оверлейной формы, но не выполняя запрос:
document.getElementById('form_name_virtual_org').reset();
Ответить с цитированием
  #9 (permalink)  
Старый 25.06.2012, 22:23
Интересующийся
Отправить личное сообщение для Eser Посмотреть профиль Найти все сообщения от Eser
 
Регистрация: 06.12.2011
Сообщений: 25

Все спасибо разобрался.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ПРинудительная остановка Ajax запроса Suharik jQuery 17 18.03.2012 00:25
Обработка данных во время AJAX запроса user783 AJAX и COMET 5 09.12.2011 03:24
Как приостановить выполнение скрипта до получения результата AJAX запроса? Хиросим AJAX и COMET 9 31.10.2011 10:56
Проблема с событиями после ajax запроса Mirgorod AJAX и COMET 5 12.06.2010 18:24
Сохранение результата ajax запроса после нажатия 'back' gregOlsen AJAX и COMET 5 18.11.2009 12:23