Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.04.2013, 15:24
Аспирант
Отправить личное сообщение для constantant Посмотреть профиль Найти все сообщения от constantant
 
Регистрация: 30.07.2008
Сообщений: 87

form: Как обернуть данные на отправку?
есть панель xtype: form
она отправляет данные с полей ajax
результат отправки выглядит так:
Код:
method: save - это свойство добавляется отдельно оно не входит в список полей
name: Вася
age: 21
date: 21.12.2012
а мне нужно вот так:
Код:
method: save
data[name]: Вася
data[age]: 21
data[date]: 21.12.2012
При этом названия полей должны остаться прежними, то есть не data[name], а name.

сейчас заюзал вариант с getValues(false, true, false, true); при свойстве полей submitValue: false, но при этом формат даты отсылаемой на сервер всегда одинаков - 2012-12-21T00:00:00 так как getValues возвращает значение модели...




Моё решение выглядит так:
...
	onSaveButtonClick: function(button, e, eOpts){
		button.disable();
		var form = button.up('form');

		modifyNames(form, true); // тупа меняем название name'ов на нужные... :(
		form.submit({
			scope: form,
			url: '/action.php',
			params:{
				method:'save'
			},
			failure: function(form, action) {
				modifyNames(this, false);
				button.enable();
			},
			success: function(form, action) {
				modifyNames(this, false);
				button.enable();
			}
		});

		function modifyNames(f, action){
			f.getForm().getFields().each(function(item){
				if(item.submitValue && item.name){
					action ? wrapInData(item) : unwrapInData(item);
					if(item.multiSelect){
						action ? setAsArray(item) : unsetAsArray(item);
					}
				}
			});
		}
		function wrapInData(field){
			field.name = 'data[' + field.name + ']';
		}
		function unwrapInData(field){
			field.name = /^data\[([\w\d]+)\]/.exec(field.name)[1];
		}
		function setAsArray(field){
			field.name = field.name + '[]';
		}
		function unsetAsArray(field){}
	},
...

Последний раз редактировалось constantant, 14.05.2013 в 15:56. Причина: добавил вариант решения
Ответить с цитированием
  #2 (permalink)  
Старый 29.04.2013, 14:22
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

я думаю как вы хотите врятли получится, либо отдельно аяксом
http://docs.sencha.com/extjs/4.2.0/#!/api/Ext.Ajax
Ответить с цитированием
  #3 (permalink)  
Старый 30.04.2013, 12:23
Аспирант
Отправить личное сообщение для constantant Посмотреть профиль Найти все сообщения от constantant
 
Регистрация: 30.07.2008
Сообщений: 87

Сообщение от skrudjmakdak
я думаю как вы хотите врятли получится, либо отдельно аяксом
да уж... а не подскажите, как работать с api для форм? может через него можно что-то придумать?
Ответить с цитированием
  #4 (permalink)  
Старый 30.04.2013, 16:13
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

что значит как работать? на оф сайте есть примеры.. самое элементарное можно понять вот ссылка:
http://docs.sencha.com/extjs/4.1.3/#...Ext.form.Panel

вот там есть параметр name, вот чему намэ равен так и обращаться к нему на сервере (например get)
...
name: 'myparam'
...
$_GET['myparam']
Ответить с цитированием
  #5 (permalink)  
Старый 04.05.2013, 21:17
Аспирант
Отправить личное сообщение для constantant Посмотреть профиль Найти все сообщения от constantant
 
Регистрация: 30.07.2008
Сообщений: 87

про что вы говорите? я имел в виду api: http://docs.sencha.com/extjs/4.2.0/#....Basic-cfg-api
Ответить с цитированием
  #6 (permalink)  
Старый 14.05.2013, 15:57
Аспирант
Отправить личное сообщение для constantant Посмотреть профиль Найти все сообщения от constantant
 
Регистрация: 30.07.2008
Сообщений: 87

добавил своё решение "в лоб"...
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сохранить данные в файл? Возможно такое на JavaScript? Forgott Общие вопросы Javascript 35 26.06.2015 19:11
Как сохранить данные из формы? Alex Danilov ExtJS 1 10.06.2012 00:53
Как сохранять данные на сервере по средствам <form>? goshikvia Общие вопросы Javascript 1 26.03.2009 14:06
Help ! Как загрузить данные по ссылке из таблицы1 в таблицу2 ? asked86 Общие вопросы Javascript 1 25.03.2009 21:06
как прекратить отправку формы? magistr_bender Events/DOM/Window 3 17.12.2008 22:37