Элемент select

Статус
Закрыто для дальнейших ответов.

pingvinchic

Well-Known Member
Регистрация
19.11.2009
Сообщения
81
Как можно с помощью php получить значение выбранной опции элемента select, чтобы в зависимости от значения делать кнопку radio активной или неактивной? Выбор значений и кнопки radio находятся на одной странице в коде. В этом вся загвоздка, обычно ведь значения передаются после того как нажимается кнопка "отправить". Как извлечь это значение тут же после выбора на этой же странице, чтобы сразу его использовать?

Код:
<select name='project' id='project' size='1'>
          <option value="0">Выберите проект</option>
          <option value="все проекты">Все проекты</option>
           .......
</select>
 

trueW3C

Поклонник Yii
Регистрация
04.03.2009
Сообщения
847
JavaScript...PHP тут не причем...

Посмотреть вложение Untitled-1.html

Хотя бы скажи спасибо...
Код:
<script type="text/javascript">
<!--
	function in_array(what, where)
	{
		for(i in where) if(what == where[i]) return true;
		return false;
	}
	
	function selectRadio(element)
	{
		var value = element.options[element.selectedIndex].value;
		var  radio = document.getElementById('selectRadio').getElementsByTagName('input');
		
		for(i in radio)
		{
			var currElement = radio.item(i);
			var data = currElement.getAttribute('title');
			var values = data.split(',');
			
			if(in_array(value, values))
				currElement.removeAttribute('disabled');
			else 
				currElement.setAttribute('disabled', 'disabled');
		}
	}
//-->
</script>
<select onchange="selectRadio(this)">
	<option value="0">Выберите проект</option>
	<option value="1">Все проекты</option>
	<option value="2">Дома</option>
	<option value="3">Квартиры</option>
</select>
<div id="selectRadio">
	<input type="radio" title="1,2" />Все проекты, Дома<br />
	<input type="radio" title="1" />Все проекты<br />
	<input type="radio" title="3" />Квартиры
</div>
 

pingvinchic

Well-Known Member
Регистрация
19.11.2009
Сообщения
81
$("select#project").val(); - таким образом ?

а как потом это значение использовать, как переменную? javascript знаю постольку поскольку, поэтому и спрашивала, нельзя ли это на php сделать...



пардон, не сразу загрузилось все ваше сообщение
 

trueW3C

Поклонник Yii
Регистрация
04.03.2009
Сообщения
847
$("select#project").val(); - таким образом ?
Я так понял это jQuery. Чистый JS куда быстрей...

пардон, не сразу загрузилось все ваше сообщение
Я сразу и не смог бы столько кода написать)

Разобрались как делать блокировку кнопок, в зависимости от выбора списка?(JS менять не надо...)
 

pingvinchic

Well-Known Member
Регистрация
19.11.2009
Сообщения
81
У меня часть списка формируется динамически... вот так:

Код:
<label>Проекты
        <select onchange="selectRadio(this)">
          <option value="0">Выберите проект</option>
          <option value="все проекты">Все проекты</option>
<?

$result = mysql_query("SELECT project_id, project_name FROM projects", $db);      
$myrow = mysql_fetch_array($result);  

do {
  
    printf (" <option value='%s'>%s</option>", $myrow["project_id"], $myrow["project_name"]);
      }
 while ( $myrow = mysql_fetch_array ($result) ); 
 

 ?>




</select> </label>
как тогда эту часть

Код:
<div id="selectRadio">
        <input type="radio" title="1,2" />Все проекты, Дома<br />
        <input type="radio" title="1" />Все проекты<br />
        <input type="radio" title="3" />Квартиры
</div>
сделать?
 

trueW3C

Поклонник Yii
Регистрация
04.03.2009
Сообщения
847
Код:
<input type="radio" title="1,2" />
radio становится активной, когда в select выбран пункт у которго value равен 1 или 2
 

pingvinchic

Well-Known Member
Регистрация
19.11.2009
Сообщения
81
ну это понятно, а как же прописывать в "title" цифры когда не знаешь сколько их будет? количество опций то в селекте может меняться
 

trueW3C

Поклонник Yii
Регистрация
04.03.2009
Сообщения
847
Код:
<?php
//Закидываем в массив нужные значения
$assoc[] = 2;
$assoc[] = 3;
....
$assoc[] = 6;

echo '<input type="radio" title="' . implode(',', $assoc) . '" />';
 

ZitosS_32

Совесть
Регистрация
12.03.2006
Сообщения
852
Код:
<input type="radio" title="1,2" />
radio становится активной, когда в select выбран пункт у которго value равен 1 или 2
Что-то раньше такого не знал. А скажите тогда, как связывается селект с раиокнопкой, ведь селектов может быть море и многие могут иметь числовые значения.
 

trueW3C

Поклонник Yii
Регистрация
04.03.2009
Сообщения
847
ведь селектов может быть море
Мы говорили об одном и ему добавили событие onchange="selectRadio(this)".

Данный селект влияет только на кнопки, которые находятся в элемента с id="selectRadio"

Что-то раньше такого не знал
Что вас удивило? JS анализирует title у переключателя и решает блокировать его или нет.

Вот более мульти решение...
Код:
<script type="text/javascript">
<!--
	function in_array(what, where)
	{
		for(i in where) if(what == where[i]) return true;
		return false;
	}
	
	function selectRadio(element, id)
	{
		var value = element.options[element.selectedIndex].value;
		var  radio = document.getElementById(id).getElementsByTagName('input');
		
		for(i in radio)
		{
			var currElement = radio.item(i);
			var data = currElement.getAttribute('title');
			var values = data.split(',');
			
			if(in_array(value, values))
				currElement.removeAttribute('disabled');
			else 
				currElement.setAttribute('disabled', 'disabled');
		}
	}
//-->
</script>
<select onchange="selectRadio(this, 'selectRadio')"><!--Второй параметр - на какой блок влияет разворачивающийся список-->
	<option value="0">Выберите проект</option>
	<option value="1">Все проекты</option>
	<option value="2">Дома</option>
	<option value="3">Квартиры</option>
</select>
<div id="selectRadio">
	<input type="radio" title="1,2" />Все проекты, Дома<br />
	<input type="radio" title="1" />Все проекты<br />
	<input type="radio" title="3" />Квартиры
</div>
 

ZitosS_32

Совесть
Регистрация
12.03.2006
Сообщения
852
Извиняюсь, код JS не глянул ;) Подумал что давно HTML не учил.
 
Статус
Закрыто для дальнейших ответов.
Верх Низ