X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Список selected в PHP
Banderas
Banderas
Topic Starter сообщение 13.2.2011, 12:56; Ответить: Banderas
Сообщение #1


У меня есть список категорий из БД. Нужно что бы стандартная (по дефолту) категория была категория №1 или "Общие". Для этого надо использовать атрибут selected в теге option. Но как это реализовать в данном коде?

[php] <select name='select[]'>

<?php

do {

$myrow['id']=1 ? $sel = "selected='selected'" : '';

printf ("<option value='%s' $sel>%s</option>", $myrow['id'], $myrow['name']);

}

while ($myrow = mysql_fetch_array($result));

?>

</select>[/php]

При таком выполнении результат обработчика

[php]!isset($_POST['submit']) ? die('Кнопка не нажата') : '';

!empty($_POST['select']) ? $select=$_POST['select'] : die('Категория не выбрана');

print_r ($select);[/php]

будет таковым

Array ( [0] => selected= )



Если вообще из формы все, что связано с selected - все отлично работает. Как правильно реализовать selected, если мне нужно его прикрепить к категории 1?
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
sc2r2bey
sc2r2bey
сообщение 13.2.2011, 13:19; Ответить: sc2r2bey
Сообщение #2


ты не одной строкой выводи данный элемент, а 2-мя, а в разрыве проверь условие, если мол условие совпадает, то выполняешь деуствие, если нет, пропускаешь.
я делаю так, не как ты, но смысл понятен:
[php] {
echo "<option";
if($c['id'] == $a['category'])
{
echo " selected ";
}
else
{
echo " ";
}
echo "value=\"".$c['id']."\">".$c['name']."</option>";
}[/php]


--------------------
Заметки о разработке и не только
программирую web и для we
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
JackBV
JackBV
сообщение 13.2.2011, 13:19; Ответить: JackBV
Сообщение #3


[php]<select name='select'>

<?

$selid = 1;

$sel = '';

do {

if ($myrow == $selid) { $sel = 'selected'; }

echo "<option value='".$myrow["id"]."' ".$sel.">".$myrow["name"]."</option>";

}

while ($myrow = mysql_fetch_array($result));

?>

</select>[/php]


Вот так я бы написал этот код...
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 13.2.2011, 18:15; Ответить: ZiTosS
Сообщение #4


Banderas, почему имя селекта name='select[]'? Квадратные скобки нужны только для организации массива, тут у тебя список выбора. Мы выбираем из кучи предлагаемых значений одно единственное (Конечно про мультивыборку тема не затрагивает).
А вообще такое чувство что кавычка в value не была закрыта... Не понятно почему такое значение передавалось.

[php]<?php
if( !empty($_POST['submit']) )
{
if( !empty($_POST['select']) )
$select=$_POST['select'];
else
die('Категория не выбрана');

echo $select;
} else {
$result = mysql_query("...");
?>
<html>
<head>
...
</head>
<body>
<form method='post' action=''>
<select name='select'>
<?php
while ( $myrow = mysql_fetch_array($result) );
{
$sel = $myrow['id']=1 ? " selected='selected'" : "";
echo "<option value='{$myrow['id']}'{$sel}>{$myrow['name']}</option>";
}
?>
</select>
<input type='submit' name='submit' value='Передать' />
</form>
</body>
</html>
<?php } ?>[/php]


Поблагодарили: (0)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
gaaarfild
gaaarfild
сообщение 21.2.2011, 15:21; Ответить: gaaarfild
Сообщение #5


А я бы сократил этот код
[php]$sel = $myrow['id']=1 ? " selected='selected'" : "";
echo "<option value='{$myrow['id']}'{$sel}>{$myrow['name']}</option>";[/php]

До вот этого
[php]echo '<option value="'.$myrow['id'].'" '.($myrow['id']=1 ? ' selected="selected"' : '').'>'.$myrow['name'].'</option>';[/php]


И еще, рекомендую везде, где выводимый текст обрамляется кавычками, использовать одинарные кавычки, так как это работает быстрее. Интерпретатор PHP не ищет в таких строках переменные PHP и, соответственно, обрабатывает быстрее.


Поблагодарили: (0)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Symphony
Symphony
сообщение 21.2.2011, 17:00; Ответить: Symphony
Сообщение #6


И еще, рекомендую везде, где выводимый текст обрамляется кавычками, использовать одинарные кавычки, так как это работает быстрее. Интерпретатор PHP не ищет в таких строках переменные PHP и, соответственно, обрабатывает быстрее.

cпасибо я даже о таком не знал

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) СОЗДАНИЕ : / САЙтЫ / ЛЕНДЫ / БОТЫ ТГ / ВАЙТЫ / КРЕО / СОФТЫ / ДИЗАЙН [PHP, JS, HTML/CSS] и другое
5 CULA 3384 19.12.2023, 18:55
автор: CULA
Открытая тема (нет новых ответов) Услуги по созданию и доработке скриптов PHP, MySQL, JavaScript, jQuery
Разработка сайтов и сервисов под-ключ
0 alexey 1237 24.11.2023, 14:46
автор: alexey
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыВеб-разработка (HTML5, CSS3, JavaScript, jQuery, Ajax, PHP)
56 qpPeW 44888 19.7.2023, 10:03
автор: qpPeW
Открытая тема (нет новых ответов) Есть спецы по php/laravel?
3 Mixatraider 1885 26.5.2023, 20:48
автор: Mixatraider
Открытая тема (нет новых ответов) Опытный PHP\Python разработчик в поиске интересных задач
6 daikzlex 3398 25.5.2023, 13:55
автор: daikzlex


 



RSS Текстовая версия Сейчас: 16.4.2024, 14:22
Дизайн