Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   сбор данных из формы (https://javascript.ru/forum/jquery/16874-sbor-dannykh-iz-formy.html)

do.it 26.04.2011 12:48

сбор данных из формы
 
ребят, помогите пожалуйста, запутался уже в массивах, пытаюсь собрать значения из формы
<div id="cont">
<input type="hidden" name="attr_id[0]" value="297" />
<input type="hidden" name="attr_id[1]" value="1315" />
<input type="hidden" name="attr_id[2]" value="1520" />
</div>
<select name="id[3]" onchange="alert(this.options[this.selectedIndex].value);">
<option value="32">46</option>
<option value="47">48</option>
<option value="9">50</option>
<option value="9">50</option>
<option value="10">52</option>
<option value="11">54</option>
<option value="12">56</option>
<option value="52">58</option>
<option value="53">60</option>
<option value="15">62</option>
<option value="16">64</option>
</select><br />
<select name="id[4]" onchange="alert(this.options[this.selectedIndex].value);">
<option value="86">158-164</option>
<option value="18">170-176</option>
<option value="19">182-188</option>
<option value="79">194</option>
</select>

и передать их пхп скрипту, в упор не понимаю, как это реализовать, подскажите хотя бы, какие функции задействовать, тут каждый параметр - это атрибут продукта, к примеру штаны, в конечном итоге набираются атрибуты вплоть до конечного товара, типа штаны красные, с синей полоской, 42 размера и т.п.
имеется пхп скрипт, который беря айдишники этих атрибутов распознаёт конкретный товар и выбирает картинки именно для него, нужно просто передать ему эти ид.
с хидденов $('#cont > input') просто нужно собрать по идее, с селектами не очень понятно, как к ним обратиться, с событием при изменении селекта понятно, если функция к примеру sbor(), то в ончейндж просто нужно javascript:sbor(); прописать

poorking 26.04.2011 13:31

Может надо завернуть все в <form> И кнопку submit добавить?

do.it 27.04.2011 00:55

эт часть кода, сам код массивен, поэтому не стал выкладывать, привёл пример того, с чем надо работать, хочу узнать, какими средствами собрать значения тегов конкретного и каким образом передать пхп скрипту

з.ы. форум по jquery, вопрос соответственно тоже, а не как форму отправлять пхп скрипту... сурово, тип выбрал из выпадающего списка 42 размер ботинок, и чтобы ему увидеть их фотку, нужно перезагружать страницу с jquery галереей, зачем вообще ява тогда?)

переменные POST имеют возможность передавать массивы?
если да, то как создать массив из значений приведённых в примере тегов

poorking 27.04.2011 01:27

Цитата:

Сообщение от do.it
переменные POST имеют возможность передавать массивы?

ответ
Цитата:

Сообщение от do.it
з.ы. форум по jquery

и не по jquery а по javascript
Цитата:

Сообщение от do.it
зачем вообще ява

вы хотели сказать javascript

Если не хотите перегружать страницу, почитайте тут на сайте статьи про AJAX.

Чтобы собрать какую либо информацию с элементов, получите их выборку, потом в цикле по ней пройдитесь и соберите нужную информацию.
Если хотите спросить как это сделать, прочитайте весь учебник по js на этом сайте.

Если не хотите его читать, скопируйте топик в раздел работа.

PS. да с помощью POST можно массив передать. Я пхп не знаю, так что и себе и вам посоветую почитать как это сделать)))

надеюсь, тон вас не обидел

do.it 27.04.2011 01:56

я знаю что такое аякс, я не просил писать скрипт, спросил, в какую степь копать, какие команды мануалить. собрать абсолютно всё и потом перебирать - через чур громоздко, Вам так не кажется? можно по дом-структуре дойти до нужных элементов, просто я немного не понимаю, если я к примеру запрошу $('#count > input').value(); что я получу? массив name и их значений? или просто набор проиндексированных значений? или строку с нагромождением?
я изучаю javascript не беспокойтесь, просто сейчас параллельно присутствует необходимость срочного решения конкретной задачи, я уже со всех сторон её описал, пришёл сюда за советом, иначе зачем ещё нужно сообщество? ради лишь показа своих самых-пресамых-наикрутейших достижений? было бы глупо. это место, где опытный может наставить на путь новичка, и новичек может иметь возможность познать мудрость

нет, тон не обидел, расстроило отсутствие продуктивной информации,ртфм любой сказать может, я прекрасно представляю алгоритм, понимаю что он легко реализуем, не знаю пока средств, спросил совета. я ни кого не просил писать за меня что-либо

п.с. с load(); post(), get() работать умею, основной загвоздка в том, как массив сформировать с атрибутами, чтобы постом отправить к примеру post['attrs'] содержащий массив атрибутов. пхп часть реализовал, это не проблема. а вот с массивами javascript не сталкивался ни разу

poorking 27.04.2011 02:12

Цитата:

Сообщение от do.it
словам придираются обычно те, кому по сути сказать нечего

:(
Цитата:

Сообщение от do.it
просто я немного не понимаю

Цитата:

Сообщение от do.it
какие команды мануалить

ну помануальте вот эту статью, тут написано как искать элементы в DOM
http://javascript.ru/tutorial/dom/search
Это самые основы, без этого никуда, как же вы тогда
Цитата:

Сообщение от do.it
я изучаю javascript не беспокойтесь


Вот, я вам указал в какую степь копать, прошу прощения за выпендреж в первом посте, надеюсь теперь претензий нет:) и форум оправдал ваши ожидания выполнив свою основную функцию - дал совет и направление.

do.it 27.04.2011 02:18

ээ я подредактировал там, пока Вы писали, из соображений вежливости) и пост скриптум написал, там мне кажется более точно о том, что мне нужно
до элементов я добираюсь без труда, но
Цитата:

если я к примеру запрошу $('#count > input').value(); что я получу? массив name и их значений? или просто набор проиндексированных значений? или строку с нагромождением?
upd.: и нет ли в jquery подобия GetElementsByName? ака обращение к айдишнику через #id
upd2.: массивы мануалю, обленился, в гугл не полез =)

walik 27.04.2011 02:31

Цитата:

Сообщение от do.it
переменные POST имеют возможность передавать массивы?

Вроде как да. К примеру:
$.post("test.php",'name[first]=Vasya&name[second]=Pupkin');
// Или
var ids_list = array(1,2,3,4,5);
$.post("test.php",
   {'ids[]': ids_list},
   function(result){
     //обработка данных которые вернул сервер 
  }
);


Цитата:

Сообщение от do.it
$('#count > input').value(); что я получу? массив name и их значений? или просто набор проиндексированных значений? или строку с нагромождением?

Во первых не value() а val()
Строчка:
$('#count > input').val();

Вернет значение первого поля.
Для обработки всех полей используйте к примеру:
$('#count > input').each(function() {
    // Тут обрабатываете каждое поле по отдельности. Формируйте массив к примеру
});


Цитата:

Сообщение от do.it
и нет ли в jquery подобия GetElementsByName?

Так можно:
$('input[name="blablabla"]').val();

do.it 27.04.2011 02:44

Цитата:

// Тут обрабатываете каждое поле по отдельности. Формируйте массив к примеру
Вы имеете в виду нечто вроде этого? (если в строку собирать, массивы сейчас читаю)
attrs .= this.value() + ', ';

или $(this).val(), как правильнее?

walik 27.04.2011 02:47

Массив можно так формировать:
var arr = [];
$('#count > input').each(function() {
    arr.push($(this).val());
});

do.it 27.04.2011 03:03

огромное спасибо! сам попробовал реализовать так:
var attrs='';
		$('#count > input').each(function() {
			attrs .= $(this).val() + ', ';
		});
		alert(attrs);

не сработало, результат вообще никакой, алерт есть только если закомментировать строки jquery... чтото спать пора помоему, а то как то криво всё пишется, утро вечера мудренее. наверное

poorking 27.04.2011 05:27

Как же вы учите яваскрипт если вы даже не знаете как строки складывать? нет оператора .= как в пхп. Используйте +=. Плохо учите :)

А во вторых, чтобы видеть что происходит, установите firebug для firefox, будете смотреть в консоли на ошибки в коде

Riim 27.04.2011 08:53

Цитата:

Сообщение от poorking
установите firebug для firefox, будете смотреть в консоли на ошибки в коде

это и без firebug можно делать.

serhanters 27.04.2011 10:07

do.it, кроме варианта который предложил вам walik можно также воспользоваться функцией AJAX записуется примерно так:

$.ajax({
		type: 'POST',
		url: base_url + 'friends/invite/' + Math.random(),
		dataType: 'json',
		data: 'invite_submit=1&to_ids=' + $('#txt_invitation_to').val() + '&message=' + $('#txt_invitation_message').val() , // данные отсылаемые на сервер
		success: function(response){   //в responce попадает результат отработанный скриптом php 
			$('#resultMsg').html(response.msg);
			$('#comnMsg').show();
			if(response.error == 'no')
			{
				$('#txt_invitation_to').val('');
				$('#txt_invitation_message').val('');
			}
		}
	});


я постоянно отсылаю данные на сервер в формате json - json format можно пеобразовать очень просто в строку которую можно пренять постом в пхп потому, что она будет отпровляться в виде имя=значение&имя=значение... .

serhanters 27.04.2011 10:09

советую всем просмотреть курс, хоть чувак который расказует очень нуден, но курс действительно полезный - http://rutracker.org/forum/viewtopic.php?t=3142656

это курс по ajax
там используются и методы в ajax - get post ajax и т.д.

do.it 28.04.2011 13:06

Цитата:

Как же вы учите яваскрипт если вы даже не знаете как строки складывать? нет оператора .= как в пхп. Используйте +=. Плохо учите
гыы)) а я то думаю, что-то в глаза бросается, а что - непонятно))) я одновременно переписывал просто php-составляющую, и js, вот и нагородил =)
serhanters, так же огромное спасибо за советы! я прям чувствую, как наполняюсь знаниями =)


Часовой пояс GMT +3, время: 23:25.