[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как сделать создать переменную из двух переменных?
major28
Здравствуйте!
У меня такой вопрос :

у меня на сервер приходят куча переменных 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 и т.д. Их количество всегда разное.
Мне надо все эти переменные вывести. Как мне это сделать?

Спустя 1 минута, 5 секунд (18.10.2010 - 10:35) sergeiss написал(а):
twin - и второй раз за последние дни я с тобой не согласен smile.gif Потому что могут быть ситуации, когда такой способ передачи информации нужен.

Спустя 1 минута, 47 секунд (18.10.2010 - 10:37) sergeiss написал(а):
Цитата (major28 @ 18.10.2010 - 11:34)
Мне надо все эти переменные вывести. Как мне это сделать?

Сделай цикл по массиву POST и анализируй ключ. Если он начинается с type_, то тогда выводи или обрабатывай так, как тебе нужно.

Спустя 2 минуты, 19 секунд (18.10.2010 - 10:39) Michael написал(а):
Ты знаешь, что можно делать так:
<input name="type[]"

?
- в php у тебя будет массив с именем type в переменной $_POST например.

Спустя 8 минут, 36 секунд (18.10.2010 - 10:47) major28 написал(а):
Michael мне передают эти переменные без массива.
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, сделал как ты посоветовал, но как  после того 


foreach($_REQUEST as $key => $val) {
//echo $key."=".$val."<br>";
$param=explode("_", $key)
if($key==$param[0])
{
  мне тут нужно создавать переменную под названием $key со значением  $val. Как мне это сделать? Тут опять получается что переменная делается из переменной что то вроде  ${$key}
}
}
;

$param=explode("_", $key)
if($key==$param[0])

Аплодисменты laugh.gif

Спустя 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
Цитата
Потому что могут быть ситуации, когда такой способ передачи информации нужен.

Силился представить себе такую ситуацию... и не смог. Просвети?

Да, мне тоже интересно было бы послушать, поучиться rolleyes.gif

Спустя 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. Пока ответ писал, еще вопросы пошли, "подпинывающие" smile.gif Я не утверждаю, кстати, что это идеальный путь. Но в определенной ситуации он мне как-то больше по душе пришелся.

Спустя 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)
и выбрать ключи...

Какие ключи, зачем??? Тут кнопка САБМИТ, будет передана информация об одной из большого множества. И в её имени я закладываю данные.
Нечто подобное делает и ТС. Хотя в его случае, возможно, массив тоже возможен smile.gif Но не надо быть категоричным, однако.

Спустя 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 - в данном случае я останусь при своем мнении (относительно своего кода), т.к. анализ ключа все равно похожий получается, но зато всё более наглядно, на мой взгляд.

Что касается ТС - множество данных тоже можно так передавать, ничему это не противоречит smile.gif Тем более, что можно в одну строку заложить множество данных. В моём случае - два параметра. Но можно и больше. Особенно, когда много данных будет. И что - вести несколько параллельных массивов? Можно, наверное... Но неудобно.
У ТС - простейший случай с одним параметром.

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

А по поводу остального всего - для того массивы и придумали, чтобы было проще, надежнее и нагляднее. Передавать данные строкой, а потом парсить её и гонять цикл... Ну знаешь, не ожидал от тебя. Причем чем больше данных, тем удобнее массив. Строку извратиться еще нужно на пять нужных частей поделить правильно.

Спустя 1 час, 3 минуты, 9 секунд (19.10.2010 - 11:26) sergeiss написал(а):
twin - ты о каком цикле говоришь, в каком случае? Если насчет моего кода, приведенного чуть ранее, то там цикла нету smile.gif Ты уж "ниже плинтуса" меня не опускай smile.gif Точнее говоря, цикл есть, но он далеко не только для этой цели.

Если же о том, что массив значений передаётся, то по-любому цикл будет. Как бы мы их не передавали.

Цитата (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.

переменной
Быстрый ответ:

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