Форум

Открыть Ответить

Проблема с POST переменными

Народ, помогите, плиз, что-то не могу никак понять, как победить проблему.
Есть такой кусочек кода:

for ($i=0; $i<limit; $i++) {
$task = "Task$i";
switch ($$task) {


Проблема в третьей строке, она не срабатывает, потому что переменные "Task1", "Task2" и т.д. типа POST и попадают в данную функцию из предыдущей формы.

Вопрос следующий: как обратится в данном случае к POST переменным, т.к. (далее фраза из справочника PHP)

  • переменные переменные не могут использоваться с суперглобальными массивами PHP. Это означает, что вы не можете делать что-то вроде ${$GET}. Если вы ищете способ использовать суперглобальные переменные и старые HTTP*_VARS, вы можете попробовать ссылаться на них
Open SLAED 1.*
PHP 5
Локальный сервер
BugsTracker
  • Группа: Новички
  • Пункты: 30
  • Регистрация: 13.04.2009
  • Пол: Мужчина
BugsTracker
3.84

3.84

23.05.2009 09:59:26 23.05.2009 10:00:10
  1. абсурд какой то... Первы раз слышу, что в конструкции switch запрещено использовать POST переменные
  2. Для чего использовать ссылки на переменные? Не усложняйте написание и восприятие кода

Теперь по коду, откуда взялась именно ссылка на переменную [i]$$task[/i] ?
sam07
  • Группа: Посетители
  • Пункты: 772
  • Регистрация: 01.06.2006
  • Пол: Мужчина
  • Из: Моздок
sam07
3.91

3.91

Я не писал, что использовать в switch POST переменную нельзя, проблема в другом: переменные $Task1, $Task2... и т.д. находятся в одной форме, а их надо передать в другую и выполнять соответственно что либо исходя из их значений, для этого запущен цикл, который присваивает переменной $task текстовые значения "Task1", "Task2" и т.д., а обращение switch ($$task) дожно по задумке проверять переменные $Task1, $Task2... и т.д.

Open SLAED 1.*
PHP 5
Локальный сервер
BugsTracker
  • Группа: Новички
  • Пункты: 30
  • Регистрация: 13.04.2009
  • Пол: Мужчина
BugsTracker
3.84

3.84

Если чесно, то очень и очень смутно я представляю, что ты там задумал.

Попробуй использовать не ссылки, а массив, типо Task[1], Task[2] и т.д., просто я реально не соображу, какая входная форма и что получить на выходе нужно

sam07
  • Группа: Посетители
  • Пункты: 772
  • Регистрация: 01.06.2006
  • Пол: Мужчина
  • Из: Моздок
sam07
3.91

3.91

Было бы легче, если бы я сам задумывал, тогда бы по этому пути и не пошел наверное, а т.к. на данный момент я переписываю модуль под Open Slaed, то сильно не хочется менять все на свете, ну да ладно, пишу поподробнее:
есть форма в ней есть n штук вот таких вот объектов, которым в цикле присваиваются значения:

<input type=\"hidden\" name=\"Task$i\" value=\"$pgid\">


после выбора значений этих объектов жмем кнопочку submit и попадаем в другую форму, где надо узнать значения этих объектов, т.е. значения POST переменных $Task1, $Task2... и т.д. Соответственно запускаем цикл, т.е. смотри первый пост.

Так, как написано в первом посте, в Slaed 2.6 Lite работает, а в Open Slaed надо обращаться к POST переменным через $_POST, иначе он их не видит, а почему, для меня загадка, если честно.

Open SLAED 1.*
PHP 5
Локальный сервер
BugsTracker
  • Группа: Новички
  • Пункты: 30
  • Регистрация: 13.04.2009
  • Пол: Мужчина
BugsTracker
3.84

3.84

используй массив

<input type='hidden' name='Task[]' value='$pgid'>

sam07
  • Группа: Посетители
  • Пункты: 772
  • Регистрация: 01.06.2006
  • Пол: Мужчина
  • Из: Моздок
sam07
3.91

3.91

вместо

switch ($$task) {

пиши
switch ($_POST[$task]) {


чего тут сложного-то?

patriot
  • Группа: Новички
  • Пункты: 121
  • Регистрация: 08.04.2006
  • Пол: Мужчина
patriot
4.03

4.03

patriot, да насколько я понят, ему не это надо, хотя может ты и в точку попал :)

sam07
  • Группа: Посетители
  • Пункты: 772
  • Регистрация: 01.06.2006
  • Пол: Мужчина
  • Из: Моздок
sam07
3.91

3.91

patriot попал прямо в точку, огромное спасибо, что помогли. Понять не могу, что именно ТАК не додумался написать, вроде как разные варианты пробовал, но опыта мало поэтому и результат соответствующий :)

Open SLAED 1.*
PHP 5
Локальный сервер
BugsTracker
  • Группа: Новички
  • Пункты: 30
  • Регистрация: 13.04.2009
  • Пол: Мужчина
BugsTracker
3.84

3.84

Блин, вот я лоханулся, рассуждения пошли неверным путем Смайл - 12

sam07
  • Группа: Посетители
  • Пункты: 772
  • Регистрация: 01.06.2006
  • Пол: Мужчина
  • Из: Моздок
sam07
3.91

3.91

Всего: 11 на 2 страницах по 10 на каждой странице

1 2
Открыть Ответить

Хотите опробовать SLAED CMS в действии?

Идеи и предложения
Обратная связь