Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.08.2013, 09:29
Аватар для negr78
Новичок на форуме
Отправить личное сообщение для negr78 Посмотреть профиль Найти все сообщения от negr78
 
Регистрация: 21.10.2010
Сообщений: 8

Вложенные формы
Цель:
Большой интерфейс = большая форма, которая должна отправится.
Визуально все разбито на закладки и в некоторых нужно подгружать ajax-ом свои мелкие формочки с кнопкой "сохранить", которые отправляют только свои данные PHP и результат появляется только в этой вкладке. Работоспособность основной формы не страдает от этого.

Решение:
* Напрашивается вложенность форм - к сожалению не реализуемо.
* Можно при сохранении вкладки менять action общей формы и отправлять вообще все, а PHP закладки должен игнорировать лишнюю инфу.
* Можно убрать все формы, а сделать div с атрибутами action, method и т.д. При нажатии "сохранить" менять div на form и отравлять ее. Как бы эмуляция вложенности форм получается.

Вопрос:
Может есть более простые решения?
Ответить с цитированием
  #2 (permalink)  
Старый 15.08.2013, 10:01
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Приведи простой пример html-кода, демонстрирующий твою проблему.
Ответить с цитированием
  #3 (permalink)  
Старый 15.08.2013, 21:01
Аватар для negr78
Новичок на форуме
Отправить личное сообщение для negr78 Посмотреть профиль Найти все сообщения от negr78
 
Регистрация: 21.10.2010
Сообщений: 8

<div style="border:1px solid #000;padding:10px">
	Это общая форма<br>
	<form>
	<input name="a" value="a">

		<div style="border:1px solid #000;padding:10px">
		Это как-бы вложеная форма, подгрузилась ajax-ом, должна локально отработать, ajax-ом же, и пропасть не трогая общую форму.<br>
		<input name="b" value="b"><input name="file" type="file">
		<input type="button" value="сохранить только input=b и файл">
		</div>

	<input type="button" value="сохранить общую форму, нажимается в последнюю очередь">
	</form>
</div>


В dom можно вынести "вложенную форму" из общей: отдельным окном, фреймом, position:absolute - но это не желательно, хочется что бы все было встроено в дизайн одной страницы и растягивалось/сжималось по мере появления/пропадания вложенных форм.

Последний раз редактировалось negr78, 15.08.2013 в 21:16.
Ответить с цитированием
  #4 (permalink)  
Старый 15.08.2013, 21:11
Аватар для negr78
Новичок на форуме
Отправить личное сообщение для negr78 Посмотреть профиль Найти все сообщения от negr78
 
Регистрация: 21.10.2010
Сообщений: 8

Идеально было бы, что бы подформу рожал и обрабатывал один PHP скрипт и она работала в браузере локально - не зависимо входит она в состав другой формы или нет.

Пока склоняюсь к решению заменить все <form> на <div> и переделывать их (div-form-div-...) по мере необходимости..

Додумывается: можно перед отправкой общей формы, сканировать ее на наличие подформ и удалять их.

Еще варианты?

Последний раз редактировалось negr78, 15.08.2013 в 21:19.
Ответить с цитированием
  #5 (permalink)  
Старый 15.08.2013, 21:13
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

А почему input[type=button] а не input[type=submit] ?
Ответить с цитированием
  #6 (permalink)  
Старый 15.08.2013, 21:49
Аватар для negr78
Новичок на форуме
Отправить личное сообщение для negr78 Посмотреть профиль Найти все сообщения от negr78
 
Регистрация: 21.10.2010
Сообщений: 8

Это детали, к сути дела наверное не относится.
Ответить с цитированием
  #7 (permalink)  
Старый 15.08.2013, 22:07
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Можно к примеру так сделать:

<div style="border:1px solid #000;padding:10px">
    Это общая форма<br>
    <form action="/handler">
    <input name="a" value="a">
 
        <div style="border:1px solid #000;padding:10px">
        Это как-бы вложеная форма, подгрузилась ajax-ом, должна локально отработать, ajax-ом же, и пропасть не трогая общую форму.<br>
        <input name="b" value="b"><input name="file" type="file">
        <button type="submit" name="action" value="action1">Сохранить 1</button>
        </div>
 
    <button type="submit" name="action" value="action2">Сохранить 2</button>
    </form>
</div>



А /controller уже делегирует обработку в зависимости от пришедшего "action"
Ответить с цитированием
  #8 (permalink)  
Старый 16.08.2013, 13:20
Аватар для negr78
Новичок на форуме
Отправить личное сообщение для negr78 Посмотреть профиль Найти все сообщения от negr78
 
Регистрация: 21.10.2010
Сообщений: 8

С одной формой и контроллером логика кода очевиднее, это плюс.
Минус: если в общей форме, где-то вверху присобачили файл, потом отправили "подформу" то будут ждать отправки файла, который после этого уйдет прямиком в помойку. Большой файл родит паузы, вплоть до 1 минуты.

Последний раз редактировалось negr78, 16.08.2013 в 13:56.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проверка формы не работает в ie begelme Javascript под браузер 6 13.08.2013 01:00
Вложенные формы maximale (X)HTML/CSS 3 08.03.2012 09:39
Вложенные формы MCTrane (X)HTML/CSS 2 31.01.2012 19:54
Добовление формы еще Kuklavod jQuery 2 03.11.2011 15:12
Простая проверка формы. Добавить "динамики". Jurasmi Элементы интерфейса 3 07.04.2010 16:48