if ($_SESSION[check1]==''){$ch1="";} else {$ch1="checked";}
if ($_SESSION[check2]==''){$ch2="";} else {$ch2="checked";}
if ($_SESSION[check3]==''){$ch3="";} else {$ch3="checked";}
if ($_SESSION[check4]==''){$ch4="";} else {$ch4="checked";}
Здесь меняются только номера в именах переменных. Хотелось бы записать всё это через цикл, чтобы не писать однообразные строки.
Спустя 11 минут, 25 секунд (23.11.2011 - 17:02) GET написал(а):
сделайте цикл от 1 до 4.
Внутри
$с='chek'.$i;
$сc='ch'.$i;
if($_session($c))
и тэд. Пишу с мобилы извините
Внутри
$с='chek'.$i;
$сc='ch'.$i;
if($_session($c))
и тэд. Пишу с мобилы извините
Спустя 19 часов, 50 минут, 38 секунд (24.11.2011 - 12:52) flashstream написал(а):
A.B.C., к сожалению твой вариант отказывается работать. Но зато я придумал такой способ:
for ($i=1; $i<=4; $i++)
{
if ($_SESSION[check.$i]==''){$_SESSION[ch.$i]="";} else {$_SESSION[ch.$i]="checked";}
}
Только теперь возник новый вопрос: как написать это же, но не запихивая переменные в массив сессионных переменных $_SESSION[] ?
Вариант if ($check.$i==''){$ch.$i="";} else {$ch.$i="checked";} неправильный.
for ($i=1; $i<=4; $i++)
{
if ($_SESSION[check.$i]==''){$_SESSION[ch.$i]="";} else {$_SESSION[ch.$i]="checked";}
}
Только теперь возник новый вопрос: как написать это же, но не запихивая переменные в массив сессионных переменных $_SESSION[] ?
Вариант if ($check.$i==''){$ch.$i="";} else {$ch.$i="checked";} неправильный.
Спустя 11 минут, 11 секунд (24.11.2011 - 13:03) GET написал(а):
flashstream
Тот же способ, что и мой
Тот же способ, что и мой
Спустя 1 час, 27 минут, 44 секунды (24.11.2011 - 14:31) hookman написал(а):
flashstream,
for ($i = 1; $i <= 4; $i++)
{
$expr_var = 'check' . $i;
$statement_var = 'ch' . $i;
if ($$expr_var == '') { $$statement_var = ""; }
else { $$statement_var = "checked"; }
}
Спустя 2 часа, 22 минуты, 22 секунды (24.11.2011 - 16:54) flashstream написал(а):
hookman, огромное спасибо! Твой способ - именно то, что надо. Задача полностью решена.
A.B.C., твоё решение тоже близко к истине, но условие if-else у тебя неправильное: $_SESSION[$c] надо было заменить на $$c.
A.B.C., твоё решение тоже близко к истине, но условие if-else у тебя неправильное: $_SESSION[$c] надо было заменить на $$c.
Спустя 11 минут, 59 секунд (24.11.2011 - 17:06) killer8080 написал(а):
flashstream
это можно записать компактней
UPD исправил имена переменных
это можно записать компактней
for($i = 1; $i <= 4; $i++){
${'ch'.$i} = !empty($_SESSION['check'.$i]) ? 'checked' : '';
}
UPD исправил имена переменных
Спустя 3 часа, 55 минут, 34 секунды (24.11.2011 - 21:01) hookman написал(а):
killer8080,
Отличный вариант :)
С Вашего позволения, тоже самое только без переменных из массива $_SESSION:
Отличный вариант :)
С Вашего позволения, тоже самое только без переменных из массива $_SESSION:
for ($i = 1; $i <= 4; $i++)
{
${'ch' . $i} = !empty(${'check'.$i}) ? 'checked' : '';
}
Спустя 8 часов, 58 минут, 4 секунды (25.11.2011 - 05:59) GET написал(а):
flashstream
Цитата |
A.B.C., твоё решение тоже близко к истине, но условие if-else у тебя неправильное: $_SESSION[$c] надо было заменить на $$c. |
//if ($_SESSION[check1]==''){$ch1="";} else {$ch1="checked";}
for ($i = 1; $i <= 4; $i++)
{
$с='chek'.$i;
$сc='ch'.$i;
if($_SESSION($c)==''){$cc='';}else{$cc="checked";}
}
;)
Спустя 1 час, 2 минуты, 19 секунд (25.11.2011 - 07:01) hookman написал(а):
Цитата (A.B.C. @ 25.11.2011 - 02:59) | ||
flashstream
//if ($_SESSION[check1]==''){$ch1="";} else {$ch1="checked";} ;) |
По-моему это не будет работать.
Во-первых, чтобы выбрать значение из массива по ключу нужны квадратные скобки.
Во-вторых, ты присваиваешь переменным $c и $cc значения, потом в зависимости от условия оставляешь $cc пустым или присваиваешь значение "checked".
Задачу автора это не решает.
Спустя 47 минут, 37 секунд (25.11.2011 - 07:49) GET написал(а):
Цитата |
По-моему это не будет работать. Во-первых, чтобы выбрать значение из массива по ключу нужны квадратные скобки. Во-вторых, ты присваиваешь переменным $c и $cc значения, потом в зависимости от условия оставляешь $cc пустым или присваиваешь значение "checked". Задачу автора это не решает. |
Вы правы я поторопился...первым постом
Цитата |
сделайте цикл от 1 до 4. Внутри $с='chek'.$i; $сc='ch'.$i; if($_session($c)) и тэд. Пишу с мобилы извините |
я показал метод, как это делать, но ...:)
вот я все проверил :)))))))))):
session_start();
error_reporting(E_ALL);
$_SESSION['chek1']='';
$_SESSION['chek2']='2';
$_SESSION['chek3']='3';
$_SESSION['chek4']='';
//if ($_SESSION[check1]==''){$ch1="";} else {$ch1="checked";}
for ($i = 1; $i <= 4; $i++)
{
$c='chek'.$i;
$cc='ch'.$i;
if($_SESSION[$c]=="")
{
$$cc='';
}
else
{
$$cc='checked';
}
echo $cc.'='.$$cc.'<br>';
}