ajax: альтернатива header'у PHP'шному естЬ?

  • Автор темы Автор темы a1exey
  • Дата начала Дата начала

a1exey

Новичок
ajax: вызов js функции

Добрый день. Подскажите есть ли на js альтернатива редиректа ? проще говоря есть скрипт,
PHP:
if ($opengames > 0)
{
  echo "<input type=button value='Начать игру $row[0]' onclick=\"sndReq('action=casino&takegame=$row[0]', '')>";
  //echo "<script>sndReq('....url....','outcards');</script>";
  //header("Location: /casino.php?takegame=$row[0]");
  die;
}
т.е. при нажатии на кнопку идёт проверка, если это то вызывать функцию надо чтобы загрузить данные, а функция не вызывается :( смотрю что выдается в заголовках, там это прописано <script>sndReq('....url....','outcards');</script> т.е. всё как надо но функция не срабатывает. писал alert('...') также не работает...
это вобще реально сделать чтобы работало? поэтому пришлось сделать кнопку при нажатии которой вызывать функцию. в body onload это вставить нельзя.
 
Перечитал бы пост перед отправкой, а то с трудом можно понять тебя.
Код:
location.href = 'URL для редиректа'
 
так дело в том что у меня не ссылка а функция...sndreq...именно её нужно вызвать когда возвращаются данные от обработчика...в посте приведён пример демонстрирующий то что мне нужно...
 
давай по порядку.
что такое "проверка"?
откуда возвращаются данные?
что такое обработчик?

что, в конце концов, ты пытаешься сделать? может быть попробуешь объяснить это по-русски, не вдаваясь в технические подробности?
 
ок. скажу полностью как есть, я не знаю как это объяснить по другому...
есть файл casino.php
есть файл обработчик ajax.php (выводит то что будет отображаться динамически (без перезагрузки страницы))
есть global.js (ajax скрипт)
в casino.php есть кнопка BUTTON при нажатии на которую вызывается js функция sndReq и вставляет в <div> который чуть ниже данные из файла ajax.php
нажимаю значит кнопку и чуть ниже у меня выводятся данные из файла ajax.php.
содержимое файла ajax.php
проверка например любая, это неважно...
к примеру:
if ($value == 'yes')
{
вывести в файл casino.php строки <script>sndReq(...)</script>
}
соотв. я хочу чтобы функция выполнилась при выводе... но выполняться она не хочет...она выполняется ТОЛЬКО если есть какая нить кнопка, например:
if ($value == 'yes')
{
вывести в файл casino.php строки <input type=button onclick=sndReq(......)>
}
при нажатии на кнопку функция срабатывает и выводит другие данные.
собственно вопрос: можно ли обойтись БЕЗ этой кнопки которая мне впринципе нафик не нужна.
знаю что можно в <BODY onload...> зафигачить, но мне этот вариант не подходит.

-~{}~ 15.10.07 19:40:

вобщем создал картинку 1 на 1 пиксель прозрачную и на неё повесил событие onload. но мне кажется это неправильный подход.
 
а в библиотеке что нету такой функции - выполнить js код?
 
if ($value == 'yes')
{
echo "<script>eval(sndReq(.......));</script>";
}
функция не выполняется :(
<script>document.write(sndReq(......));
так тоже не выполняется :(
<script>document.write(eval(sndReq(.......)));</script>
так тоже
 
Автор оригинала: a1exey
знаю что можно в <BODY onload...> зафигачить, но мне этот вариант не подходит.
Почему?

Нужно запустить функцию на странице не по событию связанному с действиями клиента, используй setInterval.
 
alekciy, ага объясни раз ты вызвался как ему запустить хотябы одну функцию, путь и setInterval или sndReq, что не суть важно и прочитай тему она о другом

a1exey, а ты почему не посмотрел в гугле какие аргументы у функции eval?
 
2 tf: я смотрел, только через яндекс - http://www.dzmrianinaski.myweb.ge/jsref_eval.asp.htm
2 alekciy: как раз нужно запустить функцию по действию клиента, только действие это должен вызвать вывод данных, проще говоря вывод картинки с действием onload привязать можно, всё работает, а вот по другому я так понял никак.
по поводу body, а разве может быть у документа 2 body? ведь страница сама по себе уже загружена и body уже прописан.
 
eval(string)
т.е. eval("sndReq(.......)");
и это должно выполнятся а не прописыватся в innerHTML твоим приемником запроса от сервера
 
a1exey А где лежит та самая функция sndReq?
Если в globals.js тогда в чем вопрос?
Как оброботать событие onclick в <input>?
Как вставляешь ответ от ajax.php, через innerHTML?
 
да, функция лежит в global.js
вопрос в том как мне её вызвать при первоначальной загрузке страницы (body onload) не катит.
объясню проще:
на странице 4 раздела:
логи, ошибки, скорости, баны
при загрузке страница у меня эти 4 ссылки видны, при клике на любую из них ниже них появляется таблица с данными.
можно ли сделать чтобы при загрузке самой страницы у меня по умолчанию подгружался конкретный раздел?
p.s. это уже чуть другая проблема, ту я решил хоть и криво, при нажатии на кнопку (по которой вызывалась функция sndReq) выводил картинку, а на картинку поставил onload событие, по этому событию у меня опять вызывалась функция sndReq только уже совсем с другими параметрами...в итоге лишний подгруз картинки...как от него избавиться не знаю. в пхп есть header, в любом месте (до вывода данных) воткнул и туда перелетел.
 
Я тебя не понимаю... Почему нельзя использовать iframe для этих целей.
>можно ли сделать чтобы при загрузке самой страницы у меня по умолчанию подгружался конкретный раздел?
Да генерируешь "саму страницу" на php где в JS делаешь что-то вроде:
PHP:
JS:


function Init() {
 var defaultContent = <?php echo $defaultContent; ?>;
 switch (defaultContent) {
  case 0: {
     LoadMyRazdel("url");
  } break;
  ...
 }
}
 
Сверху