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());
});


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