Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.01.2013, 07:22
Аватар для nevolov
Новичок на форуме
Отправить личное сообщение для nevolov Посмотреть профиль Найти все сообщения от nevolov
 
Регистрация: 16.01.2013
Сообщений: 4

Построение $.post через each
О великие гуру JS и JQuery взываю к вам
Третьи сутки не могу въехать как правильно сделать.....(((((((((((
Смысл в том, что нужно при передаче по onsubmit у form передать методом $.post значения.

У form все input'ы пронумерованы по name, но количество их изначально не известно и может меняться со временем, поэтому их именно "надергать" надо в post-запрос.

Есть рабочий код:
<form action="javascript:this.form.action = actform;" onsubmit="
        actform=
        $.post( \"http://mysite.ru/index.php?id=61\", { 
        id: $(\"input[name='id']\").val(),
        product: $(\"input[name='product']\").val(),
        price: $(\"input[name='price']\").val(),
        sum: $(\"input[name='sum']\").val(),
        number: $(\"input[name='number']\").val(),
        },
        function(data) { $.colorbox({html: data}); }
        );">

Код умеет передавать значение одной "строки" формы (со значениями без индексов) во всплывающее окно Colorbox'а.

Задача стоит следующая, нужно реализовать что-то типа этого:
<form action="javascript:this.form.action = actform;" onsubmit="
        $.post( \"http://mysite.ru/index.php?id=61\", { 

<!-- Тут какой-то условный цикл, который переберет значения от 1 до n -->

        id[n]: $(\"input[name='id[n]']\").val(),
        product[n]: $(\"input[name='product[n]']\").val(),
        price[n]: $(\"input[name='price[n]']\").val(),
        sum[n]: $(\"input[name='sum[n]']\").val(),
        number[n]: $(\"input[name='number[n]']\").val(),

<!-- конец цикла -->

        },
        function(data) { $.colorbox({html: data}); }
        );">

Количество n могу получить, а вот перебрать от 1 до этого значения (чтобы получались данные наподобие sum3, price1, number5 и т.д.) не хватает ума

Уже все перекопал, гугл дымится от моих запросов, не могу синтаксис понять какой сюда нужен и все тут У кого хоть какие-нибудь идеи есть, помогайте пожалуйста(

Последний раз редактировалось nevolov, 16.01.2013 в 07:39.
Ответить с цитированием
  #2 (permalink)  
Старый 16.01.2013, 07:57
Аватар для ОлегА
Профессор
Отправить личное сообщение для ОлегА Посмотреть профиль Найти все сообщения от ОлегА
 
Регистрация: 25.08.2011
Сообщений: 420

<form action="javascript:this.form.action = actform;" id="myForm">
<input type="text" name="id[]">
<input type="text" name="product[]">
<input type="text" name="price[]">
....
</form>

$(form).ajaxSubmit({
    success  : function(data) {
        alert(data)
    }
});


ну как то так вроде
Ответить с цитированием
  #3 (permalink)  
Старый 16.01.2013, 10:28
Аватар для nevolov
Новичок на форуме
Отправить личное сообщение для nevolov Посмотреть профиль Найти все сообщения от nevolov
 
Регистрация: 16.01.2013
Сообщений: 4

Не совсем понятно... точнее совсем непонятно...
А на что обработчик вешать? Это по онклику или по онсабмину должно выполняться? И самое главное непонятно как с этой конструкцией должен colorbox открыться?

p.s. у меня передача данных идет из всплывающего окна (точнее блока) colorbox на страницу, которая должна открыться в нем же. Здесь собственно и вся загвоздка иначе давно бы уже все и куда надо смог передать(((
Ответить с цитированием
  #4 (permalink)  
Старый 16.01.2013, 11:27
Аватар для Serg_pnz
Сам по себе
Отправить личное сообщение для Serg_pnz Посмотреть профиль Найти все сообщения от Serg_pnz
 
Регистрация: 09.06.2009
Сообщений: 963

Вот образец с выносом мозга, объединяет перед отправкой данные с двух форм.

var datas1 = {}, datas2 = {} 
	$.map($('#zak').serializeArray(), function(n, i){
		datas1[n['name']] = n['value'];
	});
	$.map($('#rasform').serializeArray(), function(n, i){
		datas2[i] = n['value'];
	});
	$.extend(datas1, datas2);


		$.ajax({
			url: 'ajax/sendEmail.php',
			data: datas1,
			type: 'post',
			beforeSend:function(){
				$('#bottons2').html('...Идет подготовка к отправке');
			},
			success: function(msg){
				$('#bottons2').html(msg);
			}
		});
Ответить с цитированием
  #5 (permalink)  
Старый 16.01.2013, 12:08
Аватар для nevolov
Новичок на форуме
Отправить личное сообщение для nevolov Посмотреть профиль Найти все сообщения от nevolov
 
Регистрация: 16.01.2013
Сообщений: 4

ОлегА, Разобрался с вашим методом!))))))) Огромное преогромное спасибище
Чтож вы то сразу не сказали только что надо сначала библиотеку jquery.form.js подгрузить, 4 часа убил чтоб разобраться, потом только понял что еще и файлик нужен))))))))
Ответить с цитированием
  #6 (permalink)  
Старый 16.01.2013, 12:11
Аватар для nevolov
Новичок на форуме
Отправить личное сообщение для nevolov Посмотреть профиль Найти все сообщения от nevolov
 
Регистрация: 16.01.2013
Сообщений: 4

Serg_pnz,
Интересно тоже, попробую и так обязательно)))))))) Там тоже библиотеку надо какую-нибудь качать?
Ответить с цитированием
  #7 (permalink)  
Старый 16.01.2013, 13:52
Аватар для Serg_pnz
Сам по себе
Отправить личное сообщение для Serg_pnz Посмотреть профиль Найти все сообщения от Serg_pnz
 
Регистрация: 09.06.2009
Сообщений: 963

нет
Ответить с цитированием
  #8 (permalink)  
Старый 17.01.2013, 07:54
Аватар для ОлегА
Профессор
Отправить личное сообщение для ОлегА Посмотреть профиль Найти все сообщения от ОлегА
 
Регистрация: 25.08.2011
Сообщений: 420

nevolov, ах да, забыл, что это плагин,ну главное разобрались!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Метод JQuery $.post работает через раз Dimaz AJAX и COMET 3 22.11.2012 17:52
Эмулировать список через селект Nanto Элементы интерфейса 2 06.03.2012 11:54
отправка данных через $.post и обработка контроллером dsnj AJAX и COMET 8 29.11.2011 13:48
кеширование HTML переданого через ajax BorisBritva jQuery 6 02.04.2011 01:23
Отправка через $.post - уже 2-й день мучаюсь! Alexander666 jQuery 4 20.02.2009 16:18