|
|
автор: Paradox (27.02.2017 в 12:04) |
|
|
для: Yuriev
(13.08.2008 в 12:16)
| | Спасибо! | |
|
|
|
|
|
|
|
для: paulluk
(12.08.2008 в 16:58)
| | Если Вам поможет, мой вариант:
<?
$result = mysql_query("SELECT name, ID FROM table");
while ($row = mysql_fetch_array ($result))
{
echo "<option value='".$row["ID"]."'>".$row["name"]."</option>";
}
echo "</select>";
?>
|
В таком виде, данные берутся из базы и сопоставляются с id. Когда пользователь выбирает какой-нибудь пункт, возвращается не его имя, а его ID. | |
|
|
|
|
|
|
|
для: paulluk
(12.08.2008 в 16:58)
| |
<select name="test">
<option value="1---Canada" selected="selected">Canada</option>
<option value="2---USA">USA</option>
<option value="3---USA">USA</option>
</select>
|
... а в обработчике формы из $_POST['test'] (или $_GET['test']) преобразовать в пару id-value, например так:
$prom = explode('---', $_POST['test']);
echo $prom[0]; // будет 1
echo $prom[1]; // будет Canada
|
| |
|
|
|
|
|
|
|
для: BinLaden
(13.08.2008 в 11:56)
| | Постараюсь до этого не доводить, спасибо:)) | |
|
|
|
|
|
|
|
для: sim5
(13.08.2008 в 11:42)
| | Большое спасибо за объяснение!!! | |
|
|
|
|
|
|
|
для: paulluk
(13.08.2008 в 11:10)
| | > Не ругайтесь пожалуйста
Вы еще не знаете как sim5 ругается. Матом и на весь форум :)) | |
|
|
|
|
|
|
|
для: paulluk
(13.08.2008 в 11:10)
| | Да я разве ругаюсь :) Я как раз все допытывался от вас - зачем вам нужен текст опшена, если вы его всегда можете узнать на стороне сервера по значению выбранного опшена. Я не буду приводить тут запросы к базе, коли вы формируете список посредством значений полученных из базы, значит у вас есть уникальные записи в ней (это для атрибута value), и описание этих записей (это текст опшенов). Следовательно, получив значение списка (это как раз номер уникальной записи в базе), вы всегда можете получить и текстовое содержание этого опшена. Будем для примера имитировать запрос к базе, проверкой в массиве, который у нас служит как бы записями в базе (предполагается, что форма передается методом POST):
<?
$m = array(1=>'USA','Canada');
//для простоты, узнаем, что форма пришла
//непосредственно по имени списка
if (isset($_POST['test'])) echo "Вы выбрали " . $m[$_POST['test']];
|
Соответственно, вы можете обратиться к базе к уникальной записи: intval($_POST['test']), и также получите то, что некогда прописали опшену. Если ваши id записи в базе, которые вы передаете в значения спика, это поле с автоинкрементом, то они всегда будут у вас уникальными. | |
|
|
|
|
|
|
|
для: sim5
(12.08.2008 в 17:54)
| | Не ругайтесь пожалуйста... мож просто пример со странами неудачный.... Допустим у меня select наполняется значениями из БД таким образом:
<select name="test" id="test">
<option value="1" selected="selected">Значение1</option>
<option value="2">Значение2</option>
</select>
|
Т.е. значения в option, могут повторяться, уникальность их можно определить только с помощью id в БД, это id я как раз и хотел присваивать значению value. Мне бы хотелось что-бы после того как пользователь выбрал значения в select, и нажал кнопку submit, в сценарий передавалось и значение value и значение option, сценарий формировал некую страницу, на которой пользователь видел что он выбрал и после определенных действий производились манипуляции с выбранным значением в БД, естественно раз значения могут повторяться, необходим этот id.... | |
|
|
|
|
|
|
|
для: paulluk
(12.08.2008 в 17:44)
| | Я сейчас как заматерюсь, больно станет! Списки формируете вы, а не ваш дядя, так ведь? Значит вы должны знать, что значению 1 соответсвует USA, а значению 2, что-то еще. Зачем вам брать текст опшена в этом случае (хотя это можно и передать)? Если вы формируете его не используя данные из базы или иного списка и не можете запомнить эти значения, то пишите тогда в значениях опшенов непосредственно USA, Canada... и т.д., а не числовые значения. | |
|
|
|
|
|
|
|
для: sim5
(12.08.2008 в 17:41)
| | В приведенном Вами коде, если пользователь выбрал USA, возможно ли в сценарии получить и USA и 1??? | |
|
|
|
|