|
|
|
| Есть такой код:
<select id="country">
<option value="1">USA</option>
<option value="2">Canada</option>
</select>
|
Как в сценарий передать значение и Value и названия страны??? | |
|
|
|
|
|
|
|
для: paulluk
(12.08.2008 в 16:58)
| | В какой сценарий - РНР или JS? | |
|
|
|
|
|
|
|
для: sim5
(12.08.2008 в 17:02)
| | в PHP | |
|
|
|
|
|
|
|
для: paulluk
(12.08.2008 в 17:03)
| | Первое: смените id="country" на name="country", иначе вы вообще ничего не получите. Значение выбранного поля: $_POST["country"], если форма передается методом POST. А вот текст опшена вы должны знать на сервере, коли вы пишите в значениях опшенов не значение поля (например, из базы), а его id (номер). | |
|
|
|
|
|
|
|
для: sim5
(12.08.2008 в 17:11)
| | А если я пишу и значение и id??? | |
|
|
|
|
|
|
|
для: paulluk
(12.08.2008 в 17:17)
| | Пишите на здоровье, но этот атрибут будет иметь значение для JS-сценария, а не для РНР. И еще, если у вас не выбран опшен, и пользователь посчитает, что ему нужен именно первый и отошлет форму без выбора, то вы все равно ничего не получите, так как этот опшен не выбран по умолчанию. Правильно, в таком случае, пишется так:
<select name="country" id="country">
<option value="1" selected="selected">USA</option> //это выбранное значение по умолчанию
<option value="2">Canada</option>
</select>
|
| |
|
|
|
|
|
|
|
для: sim5
(12.08.2008 в 17:22)
| | Я чего т наверно не понял или не правильно объяснил, когда я отправляю эту форму у меня получается два значения country и добустим id=1, а как можно получить только значения option value=1 и USA??? | |
|
|
|
|
|
|
|
для: paulluk
(12.08.2008 в 17:32)
| | Интересно, как это получается?! Чтобы из одного селекта два значения отправлялись?
Как ты это определяешь? | |
|
|
|
|
|
|
|
для: GeorgeIV
(12.08.2008 в 17:38)
| | Ничего я не определяю, просто спрашиваю возможно или нет.... | |
|
|
|
|
|
|
|
для: paulluk
(12.08.2008 в 17:32)
| | Вы получите только то значение, которое пользователь выбирет:
<form action="?" method="post">
<select name="country">
<option value="1" selected="selected">USA</option>
<option value="2">Canada</option>
</select>
<input type="submit" value="send">
</form>
<?
print_r($_POST);
?>
|
Два значения можно получить в том случае, если это список с мультивыбором, чего у вас нет. Что касается получения текстового содержания опшена на сервере, то зачем? Вы как формируете этот список для вывода на страницу, от куда вы берете значения для него? | |
|
|
|
|
|
|
|
для: sim5
(12.08.2008 в 17:41)
| | В приведенном Вами коде, если пользователь выбрал USA, возможно ли в сценарии получить и USA и 1??? | |
|
|
|
|
|
|
|
для: paulluk
(12.08.2008 в 17:44)
| | Я сейчас как заматерюсь, больно станет! Списки формируете вы, а не ваш дядя, так ведь? Значит вы должны знать, что значению 1 соответсвует USA, а значению 2, что-то еще. Зачем вам брать текст опшена в этом случае (хотя это можно и передать)? Если вы формируете его не используя данные из базы или иного списка и не можете запомнить эти значения, то пишите тогда в значениях опшенов непосредственно USA, Canada... и т.д., а не числовые значения. | |
|
|
|
|
|
|
|
для: 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
(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
(13.08.2008 в 11:42)
| | Большое спасибо за объяснение!!! | |
|
|
|
|
|
|
|
для: paulluk
(13.08.2008 в 11:10)
| | > Не ругайтесь пожалуйста
Вы еще не знаете как sim5 ругается. Матом и на весь форум :)) | |
|
|
|
|
|
|
|
для: BinLaden
(13.08.2008 в 11:56)
| | Постараюсь до этого не доводить, спасибо:)) | |
|
|
|
|
|
|
|
для: 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
|
| |
|
|
|
|
автор: 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. | |
|
|
|