Привет!
Я хочу сделать POST с помощью Jquery.
вот мой код.
Всё работает.Но мне нужно передать массив.
Код |
$(function() { var a = $("#myid").val(); $.post("secondPage.php",{var1:a},function(data) { $("#post").html(data); }); }); |
Есть inputi. у каждой есть свой индекс.(для примера)
HTML |
<input type='text' value='prohoney 221' id='myid' name='myid[1][1]'> <input type='text' value='pfff ee2' id='myid' name='myid[1][2]'> <input type='text' value='proaaaee' id='myid' name='myid[1][3]'> <input type='text' value='FFFffFFF' id='myid' name='myid[2][1]'> <input type='text' value='999' id='myid' name='myid[2][2]'> <input type='text' value='ERR' id='myid' name='myid[2][3]'> <input type='text' value='gg' id='myid' name='myid[2][6]'> |
Если я сделаю -это через $_POST,отправлю в форме.
или тот жее самый $_REQUEST
Код |
[myid] => Array ( [0] => Array
( [0] => HDMU4360732 [1] => HDMU436073220090430161000 [2] => UNF [3] => UNF [4] => 20090501161010 [5] => VY )
[1] => Array ( [0] => HDMU4360732 [1] => HDMU436073220090430161000 [2] => UNF [3] => UNF [4] => 20090521190809 [5] => YT )
[2] => Array (
[0] => HDMU4360732 [1] => HDMU436073220090430161000 [2] => UNF [3] => UNF [4] => 20090521192237 [5] => TC ) |
Через POST , я хочу получить такой же $_POST как и в
php.
Как мне сделать?
делал это по имени.. по id. не получаю свой массив всё равно.
Помогите кто знает!
Спустя 10 минут, 8 секунд (7.06.2009 - 11:54) vasa_c написал(а):
Почему бы просто не заключить все эти инпуты в форму и не сделать form.submit()?
id не может быть одинаковым у нескольких элементов.
Спустя 31 минута, 27 секунд (7.06.2009 - 12:26) Dezigo написал(а):
form.submit() -при чём сдесь это? -это POST javascripta.
Это обыкновенный POST.
я же хочу через jquery.
Спустя 4 минуты, 42 секунды (7.06.2009 - 12:30) vasa_c написал(а):
А через jquery необыкновенный POST? С блэкджеком и шлюхами?
Спустя 11 минут, 57 секунд (7.06.2009 - 12:42) Dezigo написал(а):
знаешь он такой же.
я хочу получить массив..
незнаю как обратиться к элементам чтобы получить массив значений. 2- ух мерного по name=array[1][34]
уже делал многими способами..
сериализация и тд.. это не то )))))))
Спустя 6 минут, 4 секунды (7.06.2009 - 12:48) vasa_c написал(а):
В JS нет никаких массивов значений элементов.
Есть набор элементов INPUT с именами myid[1][2], myud[1][3] и т.д.
Нужен массив - придётся выбрать все эти элементы, пройтись по ним и анализируя имена составить нужную структуру.
Спустя 16 минут, 58 секунд (7.06.2009 - 13:05) Dezigo написал(а):
мне нужно передать элемент массива с именем ' myid' . name=myid[2][3]
myid[1..][63]
в первом значении может сколько угодно быть. а во втором только 63.
динамически..
Спустя 1 час, 10 минут, 32 секунды (7.06.2009 - 14:16) twin написал(а):
Ты хочешь передать это аяксом на сколько я понял. При этом способе можешь забыть про массивы как таковые и про имена элементов в частности. В объект считываются значения элемента по id, потом из них формируется строка плана
HTML |
var1=HDMU4360732&var2=HDMU436073220090430161000&var3=и_так_далее |
По этому не пихай все в одну кучу. Нужно как то иначе строить логику или на худой конец сериализовать массив, чтоб передать его строкой.
Спустя 5 часов, 12 минут, 46 секунд (7.06.2009 - 19:29) glock18 написал(а):
в POST и GET вообще нет понятия "массив". Каждый элемент передается отдельно, и каждый параметр - строка. Придется тебе проходить по этому массиву, и формировать из него строку.
Спустя 35 минут, 19 секунд (7.06.2009 - 20:04) Oyeme написал(а):
Цитата (glock18 @ 7.06.2009 - 16:29) |
в POST и GET вообще нет понятия "массив". Каждый элемент передается отдельно, и каждый параметр - строка. Придется тебе проходить по этому массиву, и формировать из него строку. |
name=quant[] - уже не перемпнная а массив .
насчёт jquery ,странно что он не подаётся.
динамически его подать.. как одно целое.
Спустя 16 минут, 4 секунды (7.06.2009 - 20:20) twin написал(а):
Цитата |
насчёт jquery ,странно что он не подаётся |
Может быть и можно как то, я в ней не силен. И даже наверняка. Простым аяксом можно. Так же точно формировать строку, как при обычной отправке
Код |
var1[]=HDMU4360732&var2[]=HDMU436073220090430161000&var3[]=и_так_далее |
Но для этого в именах элементов совсем ни к чему писать такие конструкции. Просто строку нужно формировать из полученных значений в скрипте, а не в форме. Форма по сути тот же скрипт, который выполняет за тебя эту работу.
Спустя 2 часа, 15 минут, 20 секунд (7.06.2009 - 22:35) glock18 написал(а):
Цитата |
Форма по сути тот же скрипт, который выполняет за тебя эту работу. |
вот и я том же.
Как ты не "заобозначайся" (name или name[]), а все равно фактически элементы будут переданы строкой, а не "массивом".
Могу чего-то не знать, поэтому скажу в большинстве случаев (иначе бы сказал - во всех) между серверами, сервером и клиентом данные передаются строкой и только. Передача массива, хеша или объекта возможна только при его сериализации.
Что касается jQuery, то лично я передавал массивы json'оном, чего и вам советую.
Спустя 39 минут, 40 секунд (7.06.2009 - 23:15) twin написал(а):
Ну вообще то, если переменную обозначить как var[]=value, то в POST она будет выглядеть как array([var] => value), хотя от этого не легче. Тогда уж как то так:
var[a1]=value1&var[a2]=value2
ну или что то в этом роде. Тогда можно получить такое:
var = Array ( [a1] => value1 [a2] => value2 )
Спустя 21 минута, 27 секунд (7.06.2009 - 23:36) twin написал(а):
Вот тебе реализация без всяких кверей. Дальше подикась разберешься:
index.htmlHTML |
<html> <head> <script type="text/javascript" language="javascript"> var req = Create();
function ge(id) { return document.getElementById(id); }
function Create(){ if(navigator.appName == "Microsoft Internet Explorer"){ req = new ActiveXObject("Microsoft.XMLHTTP"); }else{ req = new XMLHttpRequest(); } return req; }
function Request(query) { req.open('post', 'ajax.php' , true ); req.onreadystatechange = Refresh; req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8"); req.send(query); }
function Refresh() { if( req.readyState== 4 ) ge('ajax').innerHTML = req.responseText;
} function Pusk() { var query; for(i = 0; i < 6; i++) query +='&myid[0]['+i+']='+encodeURIComponent(ge('myid'+i).value);
Request(query); } </script> </head> <body> <div id="ajax"></div>
<input type='text' value='prohoney 221' id='myid0' ><br> <input type='text' value='pfff ee2' id='myid1' ><br> <input type='text' value='proaaaee' id='myid2' ><br> <input type='text' value='FFFffFFF' id='myid3' ><br> <input type='text' value='999' id='myid4' ><br> <input type='text' value='ERR' id='myid5' ><br>
<input type="button" value="ТЫРЦ" onClick="Pusk()"> |
ajax.phpPHP |
<pre> <?php print_r($_POST) ?> </pre> |