Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> AJAX и кэширование 
:(
    Опции темы
Самозванка
Дата 12.10.2007, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Девушка в стиле IT
**


Профиль
Группа: Завсегдатай
Сообщений: 484
Регистрация: 5.9.2006
Где: USA

Репутация: нет
Всего: 40



не срабатывает отклик при выборе другого селекта.
Код

Поиск по параметру: 
    <select name="tip" onChange="doLoad(this.value);">
     <option value="all"  selected > Все 
      <option value="sklad" >Склад 
      <option value="name" >Наименование 
      <option value="model" >Модель 
      <option value="date">Дата прихода 
      <option value="edizm">Единица измерения 
      <option value="kolvo">Количество 
      <option value="price">Цена 
    </select>        
  <div id="txtHint"></div>

Код

function doLoad(url1)

var url="1.php";
url=url+"?tip="+url1+"&sid=" + (new Date().getTime());
alert(url);
request.open("GET",url,true);
request.send(null);
//alert(request.readyState);
request.onreadystatechange=stateChanged(); 
}
function stateChanged() 

//alert('dfdf');
if (request.readyState==4 || request.readyState=="complete")
 { 
 document.getElementById("txtHint").innerHTML=request.responseText;
 } 


Код

<?php 
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); 
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); 
header("Cache-Control: no-store, no-cache, must-revalidate"); 
header("Cache-Control: post-check=0, pre-check=0", false); 
header("Pragma: no-cache"); 
header("Content-type: text/plain; charset=windows-1251");
$dbuser = "DBA";
$dbpasswd = "SQL";
$dbname= $_COOKIE['dbname'];
$conn=odbc_connect($dbname , $dbuser , $dbpasswd );
$tip=$_GET["tip"];
setcookie("tip", $tip, time() + 3600*24);
//выбор значения СКЛАД
if ($tip=="sklad")
{
$a="Выберите склад:";
echo $a;
echo "<select name='select3' onChange=\"doLoad3(this.value);\"> ";
$resultsel =  odbc_exec( $conn, "select stockname from ipr_birja" );
for ($i=0, $size=odbc_num_rows($resultsel); $i<$size; $i++)

$f=odbc_fetch_array($resultsel,$i+1);
$v=odbc_fetch_array($resultsel, $i+2);
$b=$f['stockname'];
$c= $v['stockname'];
if ($b==$c)
{
continue;
}
else  echo "<option value=\"".$b."\">" .$b. "</option>"; 

echo "</select>";
};

и так далее другие значения селектов....


Раньше когда у меня кэш в браузере(IE) был забит целиком, всё работала нормально, так как видимо в кэш ничего не сохранялось, теперь же после очистки аякс не срабатывает, но если я раскометирываю какой нить из алертов в яваскрипте опять всё работает. В пхп пробовала различные хэдеры для запрещения кэширования не помогает, пробовала пост использовать вместо гет, ничего((( Что еще можно попробовать?

Это сообщение отредактировал(а) Самозванка - 12.10.2007, 14:34
PM MAIL ICQ   Вверх
3oxa
Дата 12.10.2007, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 15.4.2006
Где: Торонто, Канада

Репутация: нет
Всего: нет



Есть пару идеек. 

Во первых чтобы обойти любое кеширование в конец урла кидаем мусор.  В роли мусора очень классно выступает timestamp.  Так же можно сделать "умный" мусор. То бишь чтобы при определенных параметрах он будет совпадать. Я использовал md5 от массива.

Во вторых я не много не понял что должно происходить и что происходить?! (Сорри я сторонник Мутулсов)
Приходит не правильный Response или не вызываеться функция doLoad2() ???



PM MAIL ICQ   Вверх
Самозванка
Дата 12.10.2007, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Девушка в стиле IT
**


Профиль
Группа: Завсегдатай
Сообщений: 484
Регистрация: 5.9.2006
Где: USA

Репутация: нет
Всего: 40



3oxa
1. Мусор то я делаю, и пробовала и Math.random() и как тут (new Date().getTime())ю Но не спасает....
2. Пытаюсь сделать, чтобы при выборе из селекта одной из оптион появлялся другой селект, при выборе дрйгой оптион из первого селекта инпут...
Но при выборе первого оптиона каким то образом инфа кэшируется и когда я выбираю другой оптион, все равно отображается старая инфа.... 
PM MAIL ICQ   Вверх
acdcee
Дата 12.10.2007, 19:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 5.7.2007

Репутация: нет
Всего: 1



Ты когда кэш очищаешь то как мне известно ты там убиваешь куку, так как у тебя название базы данных иненно так вызывается.....

Это просто по тому что я в пхп увидел, вот а вообще хз  smile 
PM MAIL   Вверх
JSman
Дата 18.10.2007, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 279
Регистрация: 10.7.2006

Репутация: нет
Всего: 4



скобки убери request.onreadystatechange=stateChanged;
PM ICQ   Вверх
astra0
Дата 21.10.2007, 04:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 30.5.2007

Репутация: нет
Всего: нет



Цитата(Самозванка @ 12.10.2007,  12:38)
3oxa
1. Мусор то я делаю, и пробовала и Math.random() и как тут (new Date().getTime())ю Но не спасает....
2. Пытаюсь сделать, чтобы при выборе из селекта одной из оптион появлялся другой селект, при выборе дрйгой оптион из первого селекта инпут...
Но при выборе первого оптиона каким то образом инфа кэшируется и когда я выбираю другой оптион, все равно отображается старая инфа....

Попробуй обновить обьект  request. скорее всего результат кэширует он где-то у себя в классе

Добавлено через 8 минут и 16 секунд
Вот нашел
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);

У меня работает правильно
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0679 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.