2010-11-18 3 views
1

У меня довольно простая форма, настроенная с полем ввода для одной кнопки.Радио-кнопка в поле формы всегда отправляется как ON/TRUE

Существует php-скрипт, который обрабатывает форму и вставляет значения в базу данных mysql. По какой-то причине каждый раз, когда я заполняю форму, независимо от того, выбран ли я радиоприемник или нет, результат всегда ВКЛЮЧЕН/ИСТИНА.

вот мой поле ввода:

<input type="radio" name="news" id="news" class="radio" value="yes" /> 

Вот часть PHP кода, который должен обрабатывать, что:

if(isset($_POST['news'])) 
{ 
$news = "Yes"; 
} 
else 
{ 
$news = "No"; 
} 

Может кто-нибудь сказать мне, что HTE проблема от этого кода или мне нужно разместить больше?

вот полный код формы:

<form method="POST" id="ipad" name="ipad" action="list.php"> 
<input type="text" onfocus="if (this.value == 'First Name') {this.value = '';}" onblur="if (this.value == '') {this.value = 'First Name';}" value="First Name" id="fname" name="fname" class="inputtext"> 


<input type="text" onfocus="if (this.value == 'Last Name') {this.value = '';}" onblur="if (this.value == '') {this.value = 'Last Name';}" value="Last Name" id="lname" name="lname" class="inputtext"> 

<input type="text" onfocus="if (this.value == 'Email') {this.value = '';}" onblur="if (this.value == '') {this.value = 'Email';}" value="Email" id="email" name="email" class="inputtext"> 

<input type="text" onfocus="if (this.value == 'Code') {this.value = '';}" onblur="if (this.value == '') {this.value = 'Code';}" value="Code" id="code" name="code" class="inputtext"> 


<input type="radio" value="" class="radio" id="news" name="news"> 
<div class="radiotext">sign up?</div> 

    </form> 

Обратите внимание, что вход переключателя не имеет JavaScript, внесенный к нему. Я пробовал заполнить значение = "" с помощью YES или NO или оставить его пустым.

ответ

1

Вам необходимо проверить значение переключателя. Переменная всегда будет присутствовать, поэтому isset() всегда будет возвращать true.

if(!empty($_POST['news']) and ($_POST['news'] == 'yes')) 
+0

Извините, но не работает. Ответ всегда заканчивается тем же. – gteh

+0

Парень, который написал сценарий, говорит, что на моей странице есть javascript, который всегда устанавливает переключатель в положение ON, но это не так. Единственный javascript, который у меня есть, - это файл jquery. Это сводит меня с ума – gteh

+0

@gteh вы можете показать HTML-код полной формы? –

1
if (isset($_POST['news']) && $_POST['news'] == 'yes'){ 
    $news = "Yes"; 
} 
else 
{ 
    $news = "No"; 
} 
+0

тестирования, но, похоже, не работает .. имеют ту же проблему. Только на этот раз ответ всегда будет НЕТ, а не ДА. – gteh

+0

1. напечатать значение $ _POST ['news'] после отправки и до этого (если (isset ($ _ POST ['news']) && $ _POST ['news'] == 'yes')) условие приходит. поэтому мы узнаем, что такое значение $ _POST ['news']. 2 Если вы пробуете это условие с помощью news = '', тогда он даст вам результат «Нет», –

0

о том, что JQuery код, JavaScript не нужно быть внутри HTML для работы. Если бы я был вами, я бы искал свой код для .attr («checked», «checked») или .prop («checked»);

Смежные вопросы