[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как подставить в checked yes
d4a1
Парни подскажите - мне чтоб после обновления страницы данные оставались на месте:
Допустим :
Код:

<input type="text" name="a" value="<?php echo $a; ?>

Ну это просто . А как быть с checked ?
Чтоб подставить yes
Код:

<td><input name="c" value="yes" type="radio">Да
<input name="c" value="no" type="radio" checked>Нет</td>





Спустя 55 минут, 18 секунд (5.02.2012 - 09:23) nugle написал(а):
что типо этого
if($_GET['c'] == 'yes')
echo '<input name="c" value="yes" type="radio" checked = "checked">';

Спустя 7 минут (5.02.2012 - 09:30) d4a1 написал(а):
А проще нельзя - без условий ?

Спустя 20 минут, 26 секунд (5.02.2012 - 09:50) inpost написал(а):
d4a1
Вопрос: "надо или не надо", то есть "да или нет". Как он сам догадается без условия, который даст ответ: "да или нет"?

nugle
if-else ? А если 5 радио и одну выделить надо. Как ты делаешь, покажи smile.gif

Спустя 5 минут, 24 секунды (5.02.2012 - 09:56) nugle написал(а):
inpost
твой вопрос для меня не совсем понятен. У них одно имя и значение может быть одно.

Спустя 24 минуты, 49 секунд (5.02.2012 - 10:20) d4a1 написал(а):
Вопрос: "надо или не надо", то есть "да или нет". Как он сам догадается без условия, который даст ответ: "да или нет"?

Если ответили ДА ( по умолчанию НЕТ ) - то после перезагрузки страницы чекед должен остаться на Да - это возможно ?
А то он у меня на НЕТ слетает.

Спустя 5 минут, 55 секунд (5.02.2012 - 10:26) inpost написал(а):
$_POST['c'] == 2.
<input name="c" value="1" type="radio">
<input name="c" value="2" type="radio">
<input name="c" value="3" type="radio">
<input name="c" value="4" type="radio">
<input name="c" value="5" type="radio">

d4a1
Как он запомнит? Перезагрузил страницу - это тоже самое, что её открыл абсолютно заново. У тебя где-то должно храниться то, какой из чекбоксов выделить.

Спустя 39 секунд (5.02.2012 - 10:27) nugle написал(а):
можно так:
$checked = array();
$checked['yes'] = $_GET['c'] == 'yes' ? 'checked' : null;
$checked['no'] = $_GET['c'] == 'no' ? 'checked' : null;

echo '<input name="c" value="yes" type="radio" checked = "'.$checked['yes'].'">';
echo '<input name="c" value="no" type="radio" checked = "'.$checked['no'].'">';


inpost, не удачный пример, тут вообще циклом можно все прогнать) и вывод, и проверку)

Спустя 3 минуты, 9 секунд (5.02.2012 - 10:30) inpost написал(а):
nugle
Ещё как удачный.
А теперь посмотри на свой скрипт и подумай, зачем ты создавал лишнюю переменную-массив? Можно было обойтись и без него, сразу тернарный оператор в вывод.

Спустя 34 секунды (5.02.2012 - 10:31) nugle написал(а):
Сейчас, погоди, я решу задачу

Спустя 7 минут, 27 секунд (5.02.2012 - 10:38) nugle написал(а):
А как тебе такой вариант?
<?php

$text = '<form action="?" method="get">
<input name="c" value="yes" type="radio">
<input name="c" value="no" type="radio">
<input type="submit">
</form>'
;

$text = str_replace('value="'.$_GET['c'].'"', 'value="'.$_GET['c'].'" checked = "checked"', $text);
echo $text;

Спустя 2 минуты, 33 секунды (5.02.2012 - 10:41) inpost написал(а):

<input name="c" value="yes" type="radio"<?php echo ($_GET['c'] == 'yes' ? ' checked="checked"' : ''); ?> />


Либо массив:
$array = ('yes','no');
И дальше foreach с точно такой же проверкой как выше.

Спустя 2 минуты, 3 секунды (5.02.2012 - 10:43) nugle написал(а):
inpost
а представь на сколько усложниться код с 20 вариантам ответов на тест, к примеру, а тут хоп и мой вариант через реплэйс

Спустя 3 минуты, 46 секунд (5.02.2012 - 10:46) inpost написал(а):
nugle
Ну давай. Я пишу на 20 вариантов ответов чекбокс, и ты пишешь. Посмотрим, у кого короче smile.gif

Спустя 22 секунды (5.02.2012 - 10:47) nugle написал(а):
давай) поехали)

Спустя 3 минуты (5.02.2012 - 10:50) nugle написал(а):
моё
$text = '
<form action="?" method="get">
<input name="c" value="0" type="radio">
<input name="c" value="1" type="radio">
<input name="c" value="2" type="radio">
<input name="c" value="3" type="radio">
<input name="c" value="4" type="radio">
<input name="c" value="5" type="radio">
<input name="c" value="6" type="radio">
<input name="c" value="7" type="radio">
<input name="c" value="8" type="radio">
<input name="c" value="9" type="radio">
<input name="c" value="10" type="radio">
<input name="c" value="11" type="radio">
<input name="c" value="12" type="radio">
<input name="c" value="13" type="radio">
<input name="c" value="14" type="radio">
<input name="c" value="15" type="radio">
<input name="c" value="16" type="radio">
<input name="c" value="17" type="radio">
<input name="c" value="18" type="radio">
<input name="c" value="19" type="radio">
<input type="submit">
</form>
'
;

$text = str_replace('value="'.$_GET['c'].'"', 'value="'.$_GET['c'].'" checked = "checked"', $text);
echo $text;

Спустя 1 минута, 37 секунд (5.02.2012 - 10:51) inpost написал(а):
$array = array(
1 => 'Да',
2 => 'Мб',
3 => 'Нет',
4 => 'возможно',
5 => 'кто бы подумал',
6 => 'Актуально',
7 => 'Уже нет',
8 => 'совсем нет',
9 => 'Было бы',
10 => 'Или нет',
);


$text = '';
foreach($array as $k=>$v)
$text .= '<label><input type="radio" name="c" value="'.$k.'" '.(isset($_GET['c']) && $_GET['c'] == $k ? ' checked="checked"' : '').' />'.$v.'</label><br />';


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

А теперь тебе надо этот же код, представь, вставить на другой сайт, только имя поменять... ты будешь в твоём коде кажую строчку править, или достаточно в одном месте изменить.

Спустя 4 минуты, 46 секунд (5.02.2012 - 10:56) nugle написал(а):
inpost
не вывода, ничего.сам даже не тестировал? а ресурсоемкость, твой код гораздо больше затрачивает чем мой. Ты говоришь заменить? не проблема ctrl+f и все, старые значения заменил на новые

Спустя 5 минут, 50 секунд (5.02.2012 - 11:02) inpost написал(а):
А теперь MVC:
CONTROLLER:
$radio[0]['name'] = 'c';
$radio[0]['input'] = (isset($_GET['c']) ? $_GET['c'] : NULL );
$radio[0]['array'] = array(
1 => 'Да',
2 => 'Мб',
3 => 'Нет',
4 => 'возможно',
5 => 'кто бы подумал',
6 => 'Актуально',
7 => 'Уже нет',
8 => 'совсем нет',
9 => 'Было бы',
10 => 'Или нет',
);


VIEW:
<?php $now = 0; foreach($radio[$now]['array'] as $k=>$v) { ?>
<label>
<
input type="radio" name="<?php echo $radio[$now]['name']; ?>" value="'.$k.'" <?php echo ($radio[$now]['input'] == $k ? ' checked="checked"' : ''); ?> />
<?php echo $v; ?>
</label>
<
br />
<?php } ?>


И в заключение перебросить в функцию для вывода чекбоксов, всё.
Что-то в таком виде вызов:
printRadio($radio[0]);


Ну а теперь глянь на свой первый совет, где ты предлагал использовать: if-else :)

Спустя 1 минута, 4 секунды (5.02.2012 - 11:03) inpost написал(а):
nugle
Ресурсоёмкость? Ты смеёшься? Вот из-за 0.00001 сайт поломается?! smile.gif

Спустя 2 минуты, 2 секунды (5.02.2012 - 11:05) inpost написал(а):
К тому же в твоём коде WARNING, переменная не существует.

Спустя 3 минуты, 55 секунд (5.02.2012 - 11:09) nugle написал(а):
inpost
ну ладно, пока что у тебя побольше писька)))

Спустя 3 минуты, 11 секунд (5.02.2012 - 11:12) inpost написал(а):
nugle
И вообще, оба подхода нормальных, просто твой немного неудобный в администрировании. В любом случае разговор зашел в это русло не из-за кода, чей лучше или быстрее, а из-за того, что твой первый совет оказался несколько неправильный.
Точнее для ТС он в самый раз, меньше думай, быстрее получай решение. Мне хотелось именно тебя понапрягать, тебя чему-нибудь научить smile.gif

Спустя 8 минут, 35 секунд (5.02.2012 - 11:21) nugle написал(а):
inpost
и я лишь благодарен тебе за это) люблю учиться, тем более когда еще помогают)

Спустя 12 минут, 11 секунд (5.02.2012 - 11:33) d4a1 написал(а):
У меня всего два ответа ДА\НЕт Нет по умолчанию .
Но если был ответ ДА , то при Submit / перезагрузке странице - он должен оставаться ДА, если был нажат.

Спустя 1 минута, 26 секунд (5.02.2012 - 11:34) inpost написал(а):
d4a1
Мы тебе уже 3 подхода расписали smile.gif И примеры показали.

Спустя 2 часа, 13 минут, 53 секунды (5.02.2012 - 13:48) walerus написал(а):
inpost, nugle - Забеги с рулеткой по замеру пиписьки знаний продолжаются laugh.gif laugh.gif

Спустя 23 минуты, 22 секунды (5.02.2012 - 14:12) nugle написал(а):
walerus
Ахах, это бесконечные соревнования)))

Спустя 5 часов, 36 минут, 58 секунд (5.02.2012 - 19:49) d4a1 написал(а):
А так не просче?
 <td><input name="c" value="yes" type="radio" <?php if ($c=="yes") echo 'checked'; ?>>Да
<input name="c" value="no" type="radio" <?php if ($c=="no") echo 'checked'; ?>>Нет</td>

Быстрый ответ:

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