У меня такой вопрос :
у меня на сервер приходят куча переменных type_1, type_2 и т.д.
Я через цикл хочу их все вывести. Получается у меня переменная $_POST['type_'.$k] . На данный момент при выводе этой переменной он выводится как есть а не как переменная. Как мне сделать чтобы $_POST['type_'.$k] при каждом цикле выводился как переменная и я увидел значения переменных $_POST[type_1] , $_POST[type_2] и.тд.
$k=1;
if(isset($_POST['type_'.$k]))
{
print $_POST['type_'.$k];
$k=$k+1;
}
Спустя 23 минуты, 36 секунд (18.10.2010 - 10:24) twin написал(а):
Изучай массивы и не майся дурью.
Спустя 1 минута, 25 секунд (18.10.2010 - 10:25) sergeiss написал(а):
Цитата (major28 @ 18.10.2010 - 11:00) |
На данный момент при выводе этой переменной он выводится как есть а не как переменная |
Не понял самое главное - эту фразу... Что ты хочешь получить?
Спустя 1 минута, 18 секунд (18.10.2010 - 10:27) Michael написал(а):
Цитата (major28) |
при выводе этой переменной он выводится как есть а не как переменная |
Вы о чем?
Если просто посмотреть что там, то удобно так:
echo '<pre>' . print_r($_POST, true) . '</pre>';
Спустя 6 минут, 53 секунды (18.10.2010 - 10:34) major28 написал(а):
Я ничего не понял, давайте я просто напишу какова моя задача, а вы поможете мне решить ее))
Мне на сервер приходят переменные типа type_1, type_2, type_3 и т.д. Их количество всегда разное.
Мне надо все эти переменные вывести. Как мне это сделать?
Мне на сервер приходят переменные типа type_1, type_2, type_3 и т.д. Их количество всегда разное.
Мне надо все эти переменные вывести. Как мне это сделать?
Спустя 1 минута, 5 секунд (18.10.2010 - 10:35) sergeiss написал(а):
twin - и второй раз за последние дни я с тобой не согласен
Потому что могут быть ситуации, когда такой способ передачи информации нужен.

Спустя 1 минута, 47 секунд (18.10.2010 - 10:37) sergeiss написал(а):
Цитата (major28 @ 18.10.2010 - 11:34) |
Мне надо все эти переменные вывести. Как мне это сделать? |
Сделай цикл по массиву POST и анализируй ключ. Если он начинается с type_, то тогда выводи или обрабатывай так, как тебе нужно.
Спустя 2 минуты, 19 секунд (18.10.2010 - 10:39) Michael написал(а):
Ты знаешь, что можно делать так:
?
- в php у тебя будет массив с именем type в переменной $_POST например.
<input name="type[]"
?
- в php у тебя будет массив с именем type в переменной $_POST например.
Спустя 8 минут, 36 секунд (18.10.2010 - 10:47) major28 написал(а):
Michael мне передают эти переменные без массива.
sergeiss Я не понял тебя, опкажи на примере плиз.
sergeiss Я не понял тебя, опкажи на примере плиз.
Спустя 9 минут, 19 секунд (18.10.2010 - 10:57) sergeiss написал(а):
Да просто это делается...
foreach( $_POST as $key => $val)
{
/* а тут бери величину $key и анализируй с помощью строковых функций типа strpos() наличие в начале строки 'type_'
Заодно можешь и числовую величину из ключа получить, если она требуется. То есть, например, 27 из 'type_27'
И можешь также взять величину, соответствующую этому ключу, из $val
*/
}
Спустя 26 минут, 16 секунд (18.10.2010 - 11:23) major28 написал(а):
написал
и ничего я на экране не увидел....
foreach($_POST as $key => $val)
{
print $key.$val."<br>";
}
и ничего я на экране не увидел....
Спустя 5 минут, 30 секунд (18.10.2010 - 11:29) Michael написал(а):
Цитата |
и ничего я на экране не увидел.... |
вообще что ли не увидел? Или не то?
проверочку не забывай:
foreach($_POST as $key => $val)
{
if (strpos($key, 'type_') === 0) {
echo $key.$val."<br>";
}
}
Спустя 4 минуты, 27 секунд (18.10.2010 - 11:33) major28 написал(а):
когда пишу post ничего не вижу, заменил post на $_REQUEST все переменные увидел.
Спустя 3 минуты, 37 секунд (18.10.2010 - 11:37) Michael написал(а):
а версия php какая?
Спустя 3 минуты, 27 секунд (18.10.2010 - 11:40) major28 написал(а):
sergeiss, сделал как ты посоветовал, но как после того
foreach($_REQUEST as $key => $val) {
//echo $key."=".$val."<br>";
$param=explode("_", $key)
if($key==$param[0])
{
мне тут нужно создавать переменную под названием $key со значением $val. Как мне это сделать? Тут опять получается что переменная делается из переменной что то вроде ${$key}
}
};
Спустя 5 минут, 16 секунд (18.10.2010 - 11:45) Michael написал(а):
Цитата (major28 @ 18.10.2010 - 10:40) |
sergeiss, сделал как ты посоветовал, но как после того
|
$param=explode("_", $key)
if($key==$param[0])
Аплодисменты

Спустя 5 минут, 54 секунды (18.10.2010 - 11:51) major28 написал(а):
Помогите мне сделать переменную имя которой $key ???)))))
Спустя 13 минут, 21 секунда (18.10.2010 - 12:05) major28 написал(а):
нуу где вы?) помогите плиииииз
Спустя 3 часа, 49 минут, 8 секунд (18.10.2010 - 15:54) arvitaly написал(а):
$GLOBALS[$key]=$val;
Спустя 1 час, 18 минут, 7 секунд (18.10.2010 - 17:12) twin написал(а):
sergeiss
Цитата |
Потому что могут быть ситуации, когда такой способ передачи информации нужен. |
Силился представить себе такую ситуацию... и не смог. Просвети?
major28
Цитата |
мне передают эти переменные без массива. |
Кто? Может всетаки там решить эту проблему и не городить огородов?
Я склонен подозревать, что ищется путь через... ну в общем не тот.
Спустя 15 часов, 31 минута, 34 секунды (19.10.2010 - 08:43) Michael написал(а):
Цитата (twin @ 18.10.2010 - 16:12) | ||
sergeiss
Силился представить себе такую ситуацию... и не смог. Просвети? |
Да, мне тоже интересно было бы послушать, поучиться

Спустя 18 минут, 47 секунд (19.10.2010 - 09:02) sergeiss написал(а):
Цитата (twin @ 18.10.2010 - 18:12) |
Силился представить себе такую ситуацию... и не смог. Просвети? |
Вот из моего проекта.
Есть большая таблица с данными, которую юзер просматривает и анализирует.
В скрытых полях содержится кое-какая общая информация для всей таблицы. В последней колонке, в каждой строке есть кнопка такого типа:
echo '<input type="submit" name="cellinfo_button_'.$lac.'_'.$cellid.
'" value=" Перейти к данным сектора '.$lac.'-'.$cellid.' " target="mafa_'.$lac.'_'.$cellid.'"/>';
Заложенные в неё данные однозначно идентифицируют строку. На принимающей строке анализируется массив ПОСТ, из ключа с началом 'cellinfo_button_' выбирается информация. Причем, сразу 2 параметра, относящиеся к этой строке. Да еще я однозначно делаю так, что информация по каждому объекту будет показываться в отдельном окне.
Теоретически... Можно сделать функцию на JS, которая будет при нажатии кнопки устанавливать 2 скрытых поля, после чего делать сабмит формы... Можно. Но тогда все равно надо будет проводить анализ на принимающей стороне. И я (именно в данной ситуации) выбрал описанный выше путь. Он как-то понагляднее, что ли...
PS. Пока ответ писал, еще вопросы пошли, "подпинывающие"

Спустя 13 минут, 55 секунд (19.10.2010 - 09:16) twin написал(а):
А так разве нельзя?
echo '<input type="submit" name="cellinfo_button['.$lac.'_'.$cellid.']"'и выбрать ключи... Это нормальный цивилизованный способ передачи множественных данных, без извратных огородов, которые пытается нагородить топикстартер.
. 'value=" Перейти к данным сектора '.$lac.'-'.$cellid.' " target="mafa_'.$lac.'_'.$cellid.'"/>';
Спустя 7 минут, 11 секунд (19.10.2010 - 09:23) sergeiss написал(а):
Цитата (twin @ 19.10.2010 - 10:16) |
и выбрать ключи... |
Какие ключи, зачем??? Тут кнопка САБМИТ, будет передана информация об одной из большого множества. И в её имени я закладываю данные.
Нечто подобное делает и ТС. Хотя в его случае, возможно, массив тоже возможен

Спустя 14 минут, 18 секунд (19.10.2010 - 09:38) Michael написал(а):
Цитата (sergeiss @ 19.10.2010 - 08:23) |
Тут кнопка САБМИТ, будет передана информация об одной из большого множества. И в её имени я закладываю данные. Нечто подобное делает и ТС. |
ТС делает другое. Он множество данных так передает.
Спустя 1 минута, 33 секунды (19.10.2010 - 09:39) twin написал(а):
Вот:
<?php
if(!empty($_POST['cellinfo_button']))
{
$keys = array_keys($_POST['cellinfo_button']);
echo 'Нажата кнопка '. $keys[0];
}
?>
<form action="" method="post">
<?php
$lac = 1;
$cellid = 2;
echo '<input type="submit" name="cellinfo_button['.$lac.'_'.$cellid.']"'
. 'value=" Перейти к данным сектора '.$lac.'-'.$cellid.' " target="mafa_'.$lac.'_'.$cellid.'"/>';
?>
</form>
Спустя 11 минут, 28 секунд (19.10.2010 - 09:51) sergeiss написал(а):
twin - в данном случае я останусь при своем мнении (относительно своего кода), т.к. анализ ключа все равно похожий получается, но зато всё более наглядно, на мой взгляд.
Что касается ТС - множество данных тоже можно так передавать, ничему это не противоречит
Тем более, что можно в одну строку заложить множество данных. В моём случае - два параметра. Но можно и больше. Особенно, когда много данных будет. И что - вести несколько параллельных массивов? Можно, наверное... Но неудобно.
У ТС - простейший случай с одним параметром.
Что касается ТС - множество данных тоже можно так передавать, ничему это не противоречит

У ТС - простейший случай с одним параметром.
Спустя 32 минуты, 41 секунда (19.10.2010 - 10:23) twin написал(а):
Цитата |
twin - в данном случае я останусь при своем мнении (относительно своего кода), т.к. анализ ключа все равно похожий получается, но зато всё более наглядно, на мой взгляд. |
ну разумеется... конечно оставайся
А как ты находишь имя? Циклом? И это нагляднее разве?
А по поводу остального всего - для того массивы и придумали, чтобы было проще, надежнее и нагляднее. Передавать данные строкой, а потом парсить её и гонять цикл... Ну знаешь, не ожидал от тебя. Причем чем больше данных, тем удобнее массив. Строку извратиться еще нужно на пять нужных частей поделить правильно.

А как ты находишь имя? Циклом? И это нагляднее разве?
А по поводу остального всего - для того массивы и придумали, чтобы было проще, надежнее и нагляднее. Передавать данные строкой, а потом парсить её и гонять цикл... Ну знаешь, не ожидал от тебя. Причем чем больше данных, тем удобнее массив. Строку извратиться еще нужно на пять нужных частей поделить правильно.
Спустя 1 час, 3 минуты, 9 секунд (19.10.2010 - 11:26) sergeiss написал(а):
twin - ты о каком цикле говоришь, в каком случае? Если насчет моего кода, приведенного чуть ранее, то там цикла нету
Ты уж "ниже плинтуса" меня не опускай
Точнее говоря, цикл есть, но он далеко не только для этой цели.
Если же о том, что массив значений передаётся, то по-любому цикл будет. Как бы мы их не передавали.


Если же о том, что массив значений передаётся, то по-любому цикл будет. Как бы мы их не передавали.
Цитата (twin @ 19.10.2010 - 11:23) |
Строку извратиться еще нужно на пять нужных частей поделить правильно. |
Одним оператором и без извратов....
Спустя 5 минут, 45 секунд (19.10.2010 - 11:32) Michael написал(а):
Цитата (sergeiss @ 19.10.2010 - 10:26) |
twin - ты о каком цикле говоришь, в каком случае? |
sergeiss, ну покажи как в php ты достаешь значения из вот этой:
name="cellinfo_button_'.$lac.'_'.$cellid.
переменной