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

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

Модераторы: ZiX
  1. verfaa

    verfaa

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

    Все это выглядит примерно так:
    Код:
    <table>
    <form action="/domains.php" method="POST" name="domains_list" id="domains">
     
    {foreach from=$domains item=domain name=foo}
    <tr>
    <td><input type="text" value="{$domain.domain}" name="domain_name[{$domain.id}]" /></td>
     
            <td width="50" class="datetime acenter">
                <a href="#" onclick="paydetail('{$domain.id}'); return false;"><img src="/images/info.png" /></a>
     
                <div id="dialog{$domain.id}" class="dialog hide" title="Дополнительная инфо">
     
                    <table align="center">
                        <tr>
                            <td align="right">Путь к шаблонам:&nbsp;&nbsp;</td>
                            <td align="left"><input type="text" value="templ/domen" name="theme_path[{$domain.id}]" /></td>
                        </tr>
                    </table>
     
                </div>
                {* Конец Модального окна *}
     
    </td>
    </tr>
    {/foreach}
        <tr>
        <td><input type="button"  onclick="javascript: document.domains_list.submit();" value="Обновить" /></td>
        </tr>
    </table>
        </form>
     
    
    функция paydetail имеет примерно такой вид:

    Код:
            function paydetail(windID)
            {
                $(".dialog").dialog("destroy");
                var dlg =  $("#dialog"+windID).dialog(
                        {
                            resizable: false,
                            width: 490,
                            modal: true,
                            buttons:
                            {
                                "OK": function()
                                {
                                    $(this).dialog("close");
                                }
                            }
                        });
                dlg.parent().appendTo($("#domains"));
                return false;
            }
    
    Проблема была в том, что данные которые вводились в input-ы в модальном окне не передавались в скрипт-обработчик при отправке формы. Частично эта проблема была решена с помощью этой темы http://stackoverflow.com/questions/1611687/input-inside-jquery-ui-dialog-not-being-sent Оказалось, что при открытии модального окна JQuery помещает его вне формы - "When JQuery opens the dialog box , it moves it outside the form."
    Сделав так, как написано на сайте столкнулся со следующей проблемой - в форму приходят только данные из последнего модального окна. (Как видно выше - цикл smarty foreach выводит в цикле строки таблицы <tr>, в каждой строке <tr> отдельный домен и для каждого домена свое модальное окно с дополнительной информацией). Так вот приходят данные только из последнего модального окна. Подскажите как сделать чтобы приходили данные из всех модальных окон.
     
  2. bisworld

    bisworld Создатель

    Регистр.:
    2 май 2013
    Сообщения:
    12
    Симпатии:
    0
    ты тут конечно много написал, но до конца не понятно как там все это у тебя организованно, кинь ссылку на тест, чтоб визуально глянуть.