У меня есть группа переключателей. Два из них видны в разные даты. Я проверяю их, чтобы убедиться, что один из них выбран, прежде чем разрешить отправку.
Вот таблица в моей таблице. Примечание. В следующих сценариях я меняю идентификатор ввода на одно и то же для всех или как уникальный идентификатор.
<tr>
<td style="width: 120px">Select An Option *:</td>
<td>
<div >
<h3>text</h3>
<?php // date activator
$display_start = "2013-09-01";
$display_end = "2013-10-17";
if((date("Y-m-d") >= $display_start) && (date("Y-m-d") <=
$display_end)){ ?>
<input id="selection" type="radio" name="group1" value="Before17th" > text here </option></br></br>
<?php } ?>
<?php // date activator
$display_start = "2013-10-18";
$display_end = "2014-10-18";
if((date("Y-m-d") >= $display_start) && (date("Y-m-d") <=
$display_end)){ ?>
<input id="selection" type="radio" name="group1" value="After17th"> text here </option><br/></br>
<?php } ?>
<input id="selection" type="radio" name="group1" value="Already Own Devices"> text here </option><br/>
</div>
</td>
</tr>
Я попробовал этот скрипт для проверки, этот, по-видимому, проверяет первый вариант. Если я выберу второй вариант, он не поймает, что выбран этот выбор, сделав его истинным.
if ( ($('input[name="group1"]').attr('checked') == false )) {
$("#errors").after('<span class="error">Please specify an option.</span>');
hasError = true;
}
Я попробовал этот скрипт с тем же идентификатором ввода для всех параметров. Это происходит только тогда, когда выбран первый вариант. Второй выбранный параметр все еще проверяется как false.
if ( ($("#selection").attr('checked') == false )) {
$("#errors").after('<span class="error">Please specify an option.</span>');
hasError = true;
}
Я также пробовал этот скрипт, где я дал каждому входному идентификатору уникальный. Это хорошо работает, но когда я хочу использовать POST для моей базы данных, мне нужно будет создать отдельный столбец для каждого входного идентификатора.
// validate option selection
if ( ($("#selection").attr('checked') == false ) && ($("#owndevices").attr('checked') == false )) {
$("#errors").after('<span class="error">Please select an option.</span>');
hasError = true;
}
if ( ($("#selection").attr('checked') == false ) && ($("#onsite").attr('checked') == false )) {
$("#errors").after('<span class="error">Please select an option.</span>');
hasError = true;
}
Есть ли способ проверить подлинность скрипта, если один из них проверен с использованием того же идентификатора ввода. Или, может быть, использовать значение или имя группы?
благодаря
SQL ERROR, мне нужно было изменить имя html на group1, а затем вставить VALUES. Раньше я вводил идентификатор ввода.
$sql = "INSERT INTO
ucm_signup
( company, address1, address2, city, province, zip, fname, lname, email, phone,
session, iama, buyfrom, group1 )
VALUES
( '$_POST[company]','$_POST[address1]','$_POST[address2]','$_POST[city]',
'$_POST[province]','$_POST[zip]','$_POST[fname]','$_POST[lname]','$_POST[mail]',
'$_POST[phone]','$_POST[session]','$_POST[iama]','$_POST[buyfrom]','$_POST[]')";
Вы на правильном пути с некоторыми из того, что вы написали. Но две вещи, которые следует отметить:
Попробуйте сделать что-то вроде
var radios = $('input[name="group1"]:checked');
if (radios.length > 0) {
console.log('success');
} else {
console.log('you need at least one radio checked');
}
Ну, в первую очередь я бы сделал, я бы отделил ваш html-код от вашего php. Это считалось плохим стилем.
В вашем html файле укажите свою форму:
Я просто сокращу радиокнопки, и, надеюсь, вы получите большую картинку :)
<form action="php-to-process.php" method="POST">
<input type="radio" name="selected" value="male">Something<br>
<input type="radio" name="selected" value="female">Something<br>
<input type="submit"/>
</form>
хорошо, так что происходит сейчас, когда пользователь нажимает submit, выбранное значение переходит на страницу php. Обратите внимание, как вы обращаетесь к имени, а не к id на странице php.
В вашем php файле у вас будет что-то вроде
<?php
$value = $_POST['selected'];
?>
то вы можете делать все, что хотите.
Если вы не хотите кнопку отправки, вы можете добавить обработчик событий, чтобы что-то вроде
onClick="document.getElementById("formID").submit();"
поэтому, когда пользователь нажимает на эту кнопку, форма отправляется.
Отвечает ли это на ваш вопрос?