[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: jquery
Dezigo
Привет!
Я хочу сделать 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.html
Свернутый текст
HTML
<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.php

PHP
<pre>
<?
php
print_r
($_POST)
?>
</pre>






Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.