[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проверка значения value из option
Ex_Animal
Здравствуйте. Помогите пожалуйста реализовать проверку. Попытаюсь объяснить на пальцах. У меня есть страница. На ней есть текст $text и форма с тегом select

<select name="vybor" id="vybor" onChange="obrabotka( );">
<option
value='0' >Первый</option>
<option
value='1' >Второй</option>
</select>


Теперь мне нужно сделать проверку, чтобы при выборе одного из значений выводился текст

<?php
if (($text=='текст') and (в селекте hand выбрано значение '0')):
echo "Текст 1";
elseif (($text=='текст') and (в селекте hand выбрано значение '1')):
echo "Текст 2";
endif;
?>


Вопрос, как сделать вот эту проверку - (в селекте hand выбрано значение '0') ? Чтобы текст выводился сразу после выбора нужного option

Ну или как вариант проверить не value, а сам текст в option



Спустя 1 час, 1 минута, 54 секунды (1.03.2012 - 22:39) Commander Keen написал(а):
ну так и проверяй )
...&& ($vybor === '0') {}

Цитата
onChange="obrabotka( );"

это точно нужно тебе?

Спустя 9 часов, 40 минут, 3 секунды (2.03.2012 - 08:19) Эли4ка написал(а):
Цитата
Цитата
onChange="obrabotka( );"

это точно нужно тебе?

Скорее всего это для другого кода..

Спустя 1 день, 8 часов, 31 минута, 4 секунды (3.03.2012 - 16:50) Ex_Animal написал(а):
Да, там на onChange скрипт стоит.

Цитата
ну так и проверяй )
...&& ($vybor === '0') {}


Не работает. Пробовал вообще на отдельной странице без левых скриптов:

<form id="cut" name="product">
<select name="vybor" id="vybor">
<option value='0' >Первый</option>
<option value='1' >Второй</option>
</select>
</form>

<?php
if ($vybor === '0') {
echo "Текст 1";
}
else {
echo "Текст 2";
}
?>

Не работает

Спустя 36 минут, 10 секунд (3.03.2012 - 17:26) killer8080 написал(а):
Не $vybor, а $_GET['vybor']

Спустя 3 часа, 26 минут, 27 секунд (3.03.2012 - 20:53) Ex_Animal написал(а):
С гет пробовал, тоже не работает, показывает второй текст и все:

<form id="cut" name="product">
<
select name="vybor" id="vybor">
<
option value='0' >Первый</option>
<
option value='1' >Второй</option>
</
select>
</
form>

<?php
if ($_GET['vybor'] === '0') {
echo "Текст 1";
}
else {
echo "Текст 2";
}
?>


Так же ?

Может мы о разных вещах говорим. Мне нужно чтобы текст моментально менялся когда я что-то в select выбираю, без нажатия на сабмит.

И попутно еще один вопрос, если этот осилим ) Нужно чтобы при выборе option с value="moskva", в поле input вводилось Москва. Также моментально. Нагуглил похожий случай - javascript.ru/forum/jquery/15981-izmenenie-znacheniya-input-pri-smene-znacheniya-select.html, но как его под себя переделать не знаю.

Спустя 3 часа, 16 минут, 16 секунд (4.03.2012 - 00:09) killer8080 написал(а):
<form id="cut" name="product">
<select
name="vybor" onchange="document.getElementById('block').innerHTML = this.options[this.selectedIndex].text">
<option
value='0' >Первый</option>
<option
value='1' >Второй</option>
</select>
</form>
<div
id="block">Первый</div>

Спустя 6 минут, 56 секунд (4.03.2012 - 00:16) Игорь_Vasinsky написал(а):
акцентируй своё внимание на этой строке
Цитата
($_GET['vybor'] === '0')

возмжно php решил что 3х "=" будет не достаточно, пробуй "увеличивать" на ещё одно "=" с каждым тестом - истина гдето рядом.... ph34r.gif

Спустя 8 часов, 43 минуты, 23 секунды (4.03.2012 - 08:59) Commander Keen написал(а):
Игорь_Vasinsky
uybkjq cfhrfpv

Спустя 6 часов, 12 минут, 22 секунды (4.03.2012 - 15:11) Ex_Animal написал(а):
Цитата (killer8080 @ 3.03.2012 - 21:09)
<form id="cut" name="product">
<select
name="vybor" onchange="document.getElementById('block').innerHTML = this.options[this.selectedIndex].text">
<option
value='0' >Первый</option>
<option
value='1' >Второй</option>
</select>
</form>
<div
id="block">Первый</div>

Воот уже близко ! Только мне нужно не текст из option выводить, а другой. То есть нужна проверка: "Если this.options[this.selectedIndex].text == 'Первый', то document.getElementById('block').innerHTML='Текст 1', иначе 'Текст 2'.

Может что-то в этом духе, но у меня не работает

<script type="text/javascript">
function brat();
{
if this.options[this.selectedIndex].text == "Первый"
document.getElementById('block').innerHTML = "Текст 1";
else
document.getElementById('block').innerHTML = "Текст 2";
}
</script>

<
form id="cut" name="product">
<
select name="vybor" onchange="brat();">
<
option value='0' >Первый</option>
<
option value='1' >Второй</option>
</
select>
</
form>
<
div id="block">Первый</div>

Спустя 19 минут, 17 секунд (4.03.2012 - 15:31) killer8080 написал(а):
Ex_Animal
учи синтаксис js не
if this.options[this.selectedIndex].text == "Первый"
document.getElementById('block').innerHTML = "Текст 1";
else
document.getElementById('block').innerHTML = "Текст 2";

а
if (this.options[this.selectedIndex].text == "Первый")
document.getElementById('block').innerHTML = "Текст 1";
else
document.getElementById('block').innerHTML = "Текст 2";

или вообще тернарный оператор

document.getElementById('block').innerHTML =  this.options[this.selectedIndex].text == "Первый" ? "Текст 1" :  "Текст 2";


Вторая ошибка . Ключевое слово this указывает на контекст вызова. Внутри атрибута onchange, как и в любом другом событии она ссылалась на объект вызова, то есть на сам селект, если же ты просто вызвал функцию, this будет ссылаться на объект window, соответственно код this.options[this.selectedIndex].text там работать не будет.
Нужно либо изменить контекст вызова, либо передать ссылку на селект через аргумент функции
1-й вариант
Свернутый текст
<script type="text/javascript">
function brat(){
if (this.options[this.selectedIndex].text == "Первый")
document.getElementById('block').innerHTML = "Текст 1";
else
document.getElementById('block').innerHTML = "Текст 2";
}
</script>

<
form id="cut" name="product">
<
select name="vybor" onchange="brat.call(this);">
<
option value='0' >Первый</option>
<
option value='1' >Второй</option>
</
select>
</
form>
<
div id="block">Первый</div>

2-й вариант
Свернутый текст
<script type="text/javascript">
function brat(o){
if (o.options[o.selectedIndex].text == "Первый")
document.getElementById('block').innerHTML = "Текст 1";
else
document.getElementById('block').innerHTML = "Текст 2";
}
</script>

<
form id="cut" name="product">
<
select name="vybor" onchange="brat(this);">
<
option value='0' >Первый</option>
<
option value='1' >Второй</option>
</
select>
</
form>
<
div id="block">Первый</div>

Спустя 3 дня, 1 час, 29 минут, 48 секунд (7.03.2012 - 17:01) Ex_Animal написал(а):
killer8080
Спасибо огромное ! Оба варианта работают.
Быстрый ответ:

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