За последние 24 часа нас посетили 15153 программиста и 1671 робот. Сейчас ищут 955 программистов ...

Получить все данные из формы с данными в Jquery UI Dialog

Тема в разделе "JavaScript и AJAX", создана пользователем rambap, 3 май 2013.

  1. rambap

    rambap Активный пользователь

    С нами с:
    22 мар 2013
    Сообщения:
    25
    Симпатии:
    0
    Всем привет, столкнулся с проблемой:
    На сайте есть форма, внутри её таблица, внутри таблицы есть ячейка с кнопкой, при клике по которой открывается модальное окно где пользователю предлагается заполнить текстовые input-ы, которые затем отправляются в форму.

    Все это выглядит примерно так:
    Код (Text):
    1.  
    2. <table>
    3. <form action="/domains.php" method="POST" name="domains_list" id="domains">
    4.  
    5. {* Выводим в цикле <tr></tr> с информацией по каждому домену  *}
    6. {foreach from=$domains item=domain name=foo}
    7. <tr>
    8. <td><input type="text" value="{$domain.domain}" name="domain_name[{$domain.id}]" /></td>
    9.  
    10.         <td width="50" class="datetime acenter">
    11.             <a href="#" onclick="paydetail('{$domain.id}'); return false;"><img src="/images/info.png" /></a>
    12.  
    13.             <div id="dialog{$domain.id}" class="dialog hide" title="Дополнительная инфо">
    14.  
    15.                 <table align="center">
    16.                     <tr>
    17.                         <td align="right">Путь к шаблонам:&nbsp;&nbsp;</td>
    18.                         <td align="left"><input type="text" value="templ/domen" name="theme_path[{$domain.id}]" /></td>
    19.                     </tr>
    20.                 </table>
    21.  
    22.             </div>
    23.             {* Конец Модального окна *}
    24.  
    25. </td>
    26. </tr>
    27. {/foreach}
    28.     <tr>
    29.     <td><input type="button"  onclick="javascript: document.domains_list.submit();" value="Обновить" /></td>
    30.     </tr>
    31.    </form>
    32. </table>
    33.  
    функция paydetail имеет примерно такой вид:

    Код (Text):
    1.  
    2. function paydetail(windID)
    3.         {
    4.             $(".dialog").dialog("destroy");
    5.             var dlg =  $("#dialog"+windID).dialog(
    6.                     {
    7.                         resizable: false,
    8.                         width: 490,
    9.                         modal: true,
    10.                         buttons:
    11.                         {
    12.                             "OK": function()
    13.                             {
    14.                                 $(this).dialog("close");
    15.                             }
    16.                         }
    17.                     });
    18.             dlg.parent().appendTo($("#domains"));
    19.             return false;
    20.         }
    Проблема была в том, что данные которые вводились в input-ы в модальном окне не передавались в скрипт-обработчик при отправке формы. Частично эта проблема была решена с помощью этой темы http://stackoverflow.com/questions/1...not-being-sent Оказалось, что при открытии модального окна JQuery помещает его вне формы - "When JQuery opens the dialog box , it moves it outside the form."
    Сделав так, как написано на сайте столкнулся со следующей проблемой - в форму приходят только данные из последнего модального окна. (Как видно выше - цикл smarty foreach выводит в цикле строки таблицы , в каждой строке отдельный домен и для каждого домена свое модальное окно с дополнительной информацией). Так вот приходят данные только из последнего модального окна. Подскажите как сделать чтобы приходили данные из всех модальных окон.