Xajax, Qjuery, PHP, Javascript - видимость переменных. Подскажите

Focus

Новичок
Работаю в связке: PHP+Xajax. Есть следующая задача:
скрипт xajax возвращает следующее:
Код:
$objResponse = new xajaxResponse();
$objResponse->setCharEncoding('windows-1251');
$objResponse->addScript("document.getElementById('flag').value='1'");
return $objResponse;
Как средставми Jquery отловить это событие? Когда елементу присваивается значение - 1. Не силен в Qjuery, подскажите как отловить, должно быть что-то типа:
Код:
$(document).ready,  function () {
     var name = document.getElementById('flag').value;
    if(name=='1') { alert(name); }
   });
 

WMix

герр M:)ller
Партнер клуба
PHP:
$( document ).ready(function() {
    if( $('#flag').val() == 1 ) alert(1);
});
 

Focus

Новичок
Что-то не срабатывает.. Подскажите что не так делаю. Вот коротко структура страницы:
auth.tpl - форма регистрации\авторизации\напоминания пароля
Код:
<script>
$( document ).ready(function() {
  if( $('#flag').val() == '1' )
   { $('#myModal').modal('hide'); }
});
</script>
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" style="width:500px;">
.........
<div id="enter_zag" class="m_zag" onclick="show_hide('enter');">Вход</div>
<div id="regi_zag" class="m_right" onclick="show_hide('regi');">Регистрация</div>
..................
<div style="display:none" id="regi_block">
<input type="hidden" name="flag" id="flag" value="0" />
<!-- ZDES FORMA REGISTRACII-->
<button class="btn btn-primary btn-lg" type="button" onclick="xajax_regi(regi_form.email.value, regi_form.login.value, regi_form.pass.value);"> Регистрация </button>
</div>
<div id="enter_block">
</div>
// Функция xajax
<?

function regi($email, $login, $pass)
{
   $objResponse = new xajaxResponse();
   $objResponse->setCharEncoding('windows-1251');   
   $objResponse->addScript("document.getElementById('flag').value='1'");
   return $objResponse;   
} 

?>
Почему не закрывается модальное окно с формой регистрации?? Что не так?
 

WMix

герр M:)ller
Партнер клуба
признаюсь я не силен в этой библиотеке, но кажется можно както так решить.
Код:
$objResponse->addScript("document.getElementById('flag').value='1'");
$objResponse->addScript("$('#myModal').modal('hide');");
 

riff

Новичок
[offtopic]
ушёл смотреть что есть xajax....
...вернулся O_O.
Пожалейте себя, пол-часа изучения jQuery сделаю вас продуктивнее, чем (слова не подобрать) с этим (слова не подобрать).
С какого перепугу вообще можно связываться с этим, зачем?!
[/offtopic]

А на счёт вопроса:
document.getElementById('flag').value='1'
так ты ничего путного не добьёшься.
Вполне вероятно, рано или поздно, тебе понадобится возвращать что-то большее, чем просто текст.
Учи jQuery, "лучше день потерять...", а потом сделать за 5 минут
http://phpclub.ru/talk/threads/77258/page-2#post-695138
и ведь можно возвращать не только html, но и json, xml,...
 

WMix

герр M:)ller
Партнер клуба
riff, xajax довольно удобно - пишешь на сервере работает интерактивно на клиенте (в смысле генерит для этих операций необходимый js). конечно задачка примитивная для этого инструмента, но разве об этом речь?
 

riff

Новичок
довольно удобно - пишешь на сервере работает интерактивно на клиенте
Так и я, вобщем, при аякс-запросе часто возвращаю html + js
<div>текст</div>
<script>call_some_function() {}</script>
или
<script>$(',,,').call_function() {}</script>
и не нужен отдельный генератор.
 
Последнее редактирование:

WMix

герр M:)ller
Партнер клуба
я тоже, но если стоит задача к примеру нарисовать интерактивную форму с количеством полей в зависимости от предыдущих ответов пользователя, удобную для администрирования (к примеру перемещение, добавление новых полей) то удобно генерить функционал интерактивности непосредственно в момент создания поля - на сервере.
(я видел достойные продукты написанные на этой технологии просто)
 

Focus

Новичок
Подскажите как сделать редирект при использовании xajax? Тоесть Как обработать ответ и потом средставми яваскрипт выполнить редирект? Вернее как послать ответ и его обработать?
 

riff

Новичок
Да всё также: добавляешь в свой (фу) xajax строку "location.href='http://site/'" (это если данные ajax'а вставляются потом в контейнер (в <div> например)),
или просто возвращаешь url в виде строки или в составе с другими данными, а на странице, получив эти данные, обрабатываешь.
 
Сверху