Forum Webscript.Ru
Программирование => PHP => Тема начата: vol от 10 Декабря 2003, 11:13:21
-
почему-то вместо множества
ID1=значение1
ID1=значение2
ID1=значение3
удаётся принять только первое из значений
передача
приём
while ($tmp=each($HTTP_POST_VARS))
{
print "$tmp[0]=$tmp[1]
";
}
результат при пометке всех трёх чекбоксов
63=404
как правильно принять все помеченные чекбоксы с одинаковым именем?
варианты давать разные имена (типа 63_1,63_2) не предлагать
-
input type=checkbox name=arrrrrr[]
input type=checkbox name=arrrrrr[]
...
или
input type=checkbox name=arrrrrr[4345]
input type=checkbox name=arrrrrr[34534]
...
-
варианты давать разные имена (типа 63_1,63_2) не предлагать
Какие мы грозные. А если предложим? Обидишься и уйдешь?
Ааааа! Я знаю. Ламерами обзовешь.
Ну, нам не привыкать.
Тут таких, как ты, толпы ходят.
Итак, переходим к твоей задаче.
Зачем усложнять?
возьми, напиши в своем скрипте
$id1=1;
$id1=2;
$id1=3;
И давай - бодайся с системой, в форум напиши - а почему это у тебя одна и та же переменная не хочет содержать десяток значений???
Если ты напишешь не в форме улдьтиматума - "не предлагать", а попытаешься собрать весь свой словарный запас в кулак, и описать - зачем тебе это понадобилось, то мы тебе с удовольствием расскажем, как сделать по-человечески ;-)
-
RomikChef, прости, я уже проговорился :-)
vol, ну действительно - как ты хотел под одним именем держать несколько сущностей? Как к ним отдельно обращаться?
-
Я к чему?
Если смотреть с точки зрения массива $_POST, то принципиальной разницы между переменными
$_POST[\'var\'][$i] и $_POST[\'var\'.$i] - нету.
И поэтому я полагаю, что твое решение попадает под поставленные ограничения.
-
спасибо за совет
если кому будет интересно, то решил следующим образом
передача
приём
while ($tmp=each($HTTP_POST_VARS))
{
print "$tmp[0]=";
foreach($tmp[1] as $tmp2)
{
print "$tmp2,";
}
print "
";
}
RomikChef
вообще-то меня смутила фраза в мануале по методу POST, что в случае одинаковых имён полей форма (автоматически) будет передавать их в виде "ID=значение1,значение2,значение3"
вот собственно такую строку я и хотел принять.
может мануал кривой...
tserbis:
как ты хотел под одним именем держать несколько сущностей? Как к ним отдельно обращаться?
а обращаться к ним не проблема.
например так (на клиенте)
var controlIndex;
var element;
var numberOfControls=document.forms[0].length;
for (controlIndex=0;controlIndex{
element=document.forms[0][controlIndex];
if (element.type=="checkbox") {element.checked=true;}
}
но это не важно
-
а можно ссылочку на тот мануал? На место, где говорится, что значения передаются именно так?
-
по поводу же разницы между формой и скриптом, я тебе поясню.
На клиенте есть форма. с элементами.
которые, дествительно, можно перебрать.
Но в скрипт передается не форма. А строка.
вида pole1=a&pole2=b...
Сделай своей форме метод GET и убедись.
И если имена полей сделать одинаковыми, то это будет равнозначно присвоению одной переменной нескольких значений.
-
RomikChef
у меня книга (hardcopy) "справочник вебмастера" Стивен Спэйнауэр, Роберт Экштейн
часть 1. HTML
глава 6. Формы
тег INPUT
Флажки (стр. 110)
дословно
При установке для нескольких флажков одинакового значения атрибута name создаётся группа флажков. Броузер автоматически считывает значения группы флажков и передаёт серверу список значений установленных флажков, разделённых запятыми, что значительно облегчает обработку формы на стороне сервера.
-
по поводу
RomikChef:
Но в скрипт передается не форма. А строка.
вида pole1=a&pole2=b...
Сделай своей форме метод GET и убедись.
знаешь, тоже никаких проблем
ID1=значение1&ID1=значение2&ID1=значение3
потом
через
$tmparr=explode("&",$QUERY_STRING);
и через foreach я их принимаю и обрабатываю
....
но хотелось именно принять как в мануале написано
-
понятно.
больше не называй это мануалом.
-
vol
я тебе не для того метод ГЕТ привел, чтобы ты мне про квери стринг рассказывал.
А ДЛЯ НАГЛЯДНОСТИ!
Речь идет не о тебе. Не о том, как ТЫ квери стринг парсишь.
а о том, как ПХП их парсить. Ну неужели так трудно сообразить?
если говоришь пхпе заранее - МАССИВ ЭТО, то он и положит в массив.
Если несказать - то он тупо сложит в одну переменную.
Все просто, как 2х2=4.
Ты вообще хотя бы микроскопическим абстрактным мышлением владеешь? можешь представить, как ПХП твою строчку обработает?
Или так и будешь, как деревенщина, глаза лупить - "через foreach я их принимаю. А шо такого?".
В книжке у тебя написан бред. Выкини ее на помойку.
Возможно, это разделение запятыми делается на клиенте, яваскриптом. но к РНР-то это не имеет никакого отношения. Как хочешь свои данные на клиенте обрабатывай - хоть через запятую, хоть буквой зю. Но переменные пхп-то тут при чем?