Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   передача радиокнопки (https://javascript.ru/forum/events/5556-peredacha-radioknopki.html)

vanderv 22.10.2009 21:40

передача радиокнопки
 
Как передать значение выбранной радиокнопки.
пробую так:
<script type="text/javascript"> 
function checkL() {
var rejt = document.getElementByName('rejt').value;
$("#check").html('<img src="loader.gif" />');
$("#check").load("voite.php", { rejt: rejt });
}
</script>

<form name='rejt1' id='rejt1'>
  <input  type='radio' class='star' name='rejt' value='1'/>
  <input  type='radio' class='star' name='rejt' value='2'/>
  <input  type='radio' class='star' name='rejt' value='3'/>
  <input  type='radio' class='star' name='rejt' value='4'/>
  <input  type='radio' class='star' name='rejt' value='5'/>
  <input  type='radio' class='star' name='rejt' value='6'/>
  <input  type='radio' class='star' name='rejt' value='7'/>
  <input  type='radio' class='star' name='rejt' value='8'/>
  <input  type='radio' class='star' name='rejt' value='9'/>
  <input  type='radio' class='star' name='rejt' value='10'/>
  </form>
  <span class='checkit' style='cursor:pointer;' onclick='checkL();'>Проверить</span>
    <div id='check'></div>

<div id='check'></div> принимаят значения переданной переменной на страницу voite.php
Если я пишу document.getElementByName('rejt'), то просто тупо ничего не происходит, если заменить document.getElementById('rejt'), и везде прописать id одинаковый то передаёт только 1 значение, еслли каждому свой id то каким образом понять что выбрал пользователь??

Octane 22.10.2009 21:59

На jQuery должно так заработать:
var value = $("#rejt1 input.star:checked").val();

просто на javascript: получаете нужные input'ы и среди них ищите элемент со свойством checked == true.
var list = document.getElementById("rejt1").getElementsByName("rejt"), i = list.length, value = -1;
while(i--) {
	if(list[i].checked) {
		value = list[i].value;
		break;
	}
}

vanderv 22.10.2009 22:12

Попробывал ваш метод - Когда нажимаешь проверить, ничего не происходит.
Вот статья то что я хочу реализовать:
http://www.simplecoding.org/sozdaem-...yu-jquery.html
там пишится что когда делается выбор появляется
<input type="hidden" value="" name="star1"/>
со значением выбранного рейтинга...
И как мне теперь отправить это значение на voite.php без перезагрузки и принять информацию об обработке???
вот код voite.php:
include "connect.php";
header('Content-Type: text/html; charset=windows-1251');
if($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest')
    {
  $rejt = $_REQUEST[rejt];
  $idfilm = $_REQUEST[idfilm];
  if ($rejt != '')
      {
      echo $rejt;
      }
  else
      {
      echo "No";
      }
  }

Как видно я пока пытаюсь вообще принять значение rejt.

Octane 22.10.2009 22:18

Цитата:

Сообщение от vanderv
Как видно я пока пытаюсь вообще принять значение rejt.

$rejt = $_GET['rejt'];

vanderv 22.10.2009 22:21

Нет вы неправильно поняли... Принять то она принимает... Я пробывал отсылать обычное поле, она всё великолепно принимает и обратно мне отсылает....
А вот с радио кнопкой пока не получается...

Octane 22.10.2009 22:24

Ну так показывайте, что не получается, какие ошибки выдает.

vanderv 22.10.2009 22:56

Вложений: 1
В том то и дело что ничего не пишет!!! Просто перестаёт реагировать на меня...(если я меняю
document.getElementByid('rejt').value;
на
document.getElementByName('rejt').value;

)
Почему она не хочет отправлять данные с именем rejt???
Я прикрипил файлы, можете посмареть, что когда name то ничего не передаёт(хотя в статье написано что надо обращаться к name rajt).
Попробуйте заменить все эти десять инпут на 1, и дать ему id rajt, то всё великолепно отправится...

Octane 23.10.2009 00:15

Цитата:

Сообщение от vanderv
В том то и дело что ничего не пишет!!! Просто перестаёт реагировать на меня...(если я меняю
document.getElementByid('rejt').value;
на
document.getElementByName('rejt').value;

Нету в JavaScript методов getElementByid и getElementByName, есть getElementById и getElementsByName.
Я вам уже написал, как сделать, разве не ясно из моего ответа, что document.getElementByName('rejt').value; работать не будет…

barsmsk 20.06.2011 10:24

Возможно для автора вопроса ответ уже не актуален но многие испытывают затруднения с обработкой радиокнопок, особенно когда есть несколько групп кнопок, в которых нужно выбрать их сочетание. Примером может служить "кодовый замок". Решить проблему можно так.
Создается несколько переменных (по количеству групп радиокнопок)
например:
var r1=0;
var r2=0;
...
Var rN=0;

далее создаем группы кнопок, для простоты покажем две.

<input type='radio' name='R1' onclick="set(1,1)">
<input type='radio' name='R1' onclick="set(2,1)">
<input type='radio' name='R1' onclick="set(3,1)">
<input type='radio' name='R1' onclick="set(4,1)">
<input type='radio' name='R1' onclick="set(5,1)">

<input type='radio' name='R2' onclick="set(1,2)" >
<input type='radio' name='R2' onclick="set(2,2)" >
<input type='radio' name='R2' onclick="set(3,2)" >
<input type='radio' name='R2' onclick="set(4,2)" >
<input type='radio' name='R2' onclick="set(5,2)" >

<input type=button value="Check" onclick="checkKey()">

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

function set(n,m){
var buttonName ='r'+m;
eval(buttonName=n);
}

function checkKеy()
{
if (r1==[первая цифра кода] && r2==[вторая цифра кода])
{
//замок открыт
......
......
}
else
{
alert('Вы ввели неправильный код!');
}
}
В случае с одной группой кнопок все вообще просто. Если кнопки входят в состав формы то нужно добавить аттрибут "value"


Часовой пояс GMT +3, время: 01:20.