Например:
В базе данных есть пять имен (или будет больше): ANGGIE, BOB, CHUCK, DEAN, EAST.
HTML:
<form name = "test">
<?php $num++; ?>
<td> [each names in the database] </td>
<td><input type = "radio" id = "yes" name = "status'.$num.'" value = "1" /></td>
<td><input type = "radio" id = "no" name = "status'.$num.'" value = "0" /></td>
</form>
<div id="message"></div>
Результат:
ANGGIE YES NO
BOB YES NO
CHUCK YES NO
DEAN YES NO
EAST YES NO
JQuery:
$(':radio:checked').each(function(){
alert($(this).val());
});
ПРОБЛЕМА ОДИН Я хочу получить значение радиокнопок в JQuery, но я получил только первую группу переключателей. Если я нажму "Да" или "Нет" в ANGGIE, значение появится, но если я нажму "ДА" или "НЕТ" на других именах, значение не появится.
Итак, как заставить все это работать? Благодарю.
ОТВЕТ ОДИН
$(document).ready(function(){
$("form[name='test']").submit(function(){
$(':radio:checked').each(function(){
alert($(this).val());
});
return false;
});
});
Спасибо Kingkero. Код работает, потому что → $ ("form [name = 'test']"). Все это время я помещал $ (input [name = 'status']: checked), поэтому его не работает, появляется только одно значение.
ПРОБЛЕМА ДВА И еще одна проблема заключается в том, что я все еще пытаюсь вставить значения в базу данных, используя ajax.
$(document).ready(function() {
getValue();
});
function getValue() {
$("form[name='frm_filter']").submit(function(){
$(':radio:checked').each(function(){
var test = $(this).val();
//alert($(this).val());
var html = $.ajax({
type: "POST",
url: "result.php",
data : ({test : test,
pseudoParam : new Date().getTime()
}),
async: false,
cache: false
}).responseText;
$("#message").html(html);
});
return false;
});
}
В PHP:
когда echo $ test = $ _POST ["test"]; он имеет только один вставленный данные, последний проверен. Что я должен исправить?
ОТВЕТ ДВА. Хорошо, у меня есть ответ на мою вторую проблему: должно быть так:
$(document).ready(function() {
$('#btnSave').click(function() {
getValue();
});
});
function getValue() {
var data = $(":radio:checked").serialize();
var html = $.ajax({
type: "POST",
url: "result.php?"+data,
data : ({data: data,
pseudoParam : new Date().getTime()
}),
async: false,
cache: false
}).responseText;
$("#message").html(html);
}
в PHP:
call data by $_REQUEST["status$num"];
вздох наконец ~
Воспользуйтесь serialize()
поэтому вам не нужно использовать "другой" цикл each()
для ваших входов. Кроме того, ваш цикл включает идентификаторы, которые, если они есть, вызовут конфликт, потому что вы будете использовать несколько идентификаторов для различных элементов. Измените значение, если вы хотите сделать его "да" или "нет",
http://jsfiddle.net/r3An2/ - DEMO
var data = $('#testform').serialize();
alert(data);
Кроме того, убедитесь, что ваш <input/>
имеет закрывающий тег;)
serializeArray()
, либо увидеть второй ответ с использованием serialize()
и затем получить данные с помощью $_POST['status1'], $_POST['status2'], etc..
Вам нужно запомнить контекст ваших переменных. В примере кода, который вы указали, '. $ Num.' не оценивается. В скобках нет циклы. Вы должны заключить их внутри тега, например:
<form name = "test">
<table>
<?php for ( $num=0; $num < 5; $num++) { ?>
<tr>
<td><?php echo $row[$num]['NAME']; ?></td>
<td><input type="radio"
id="yes<?php echo $num; ?>"
name="status<?php echo $num; ?>" value="1"/>
</td>
<td><input type="radio"
id="no<?php echo $num; ?>"
name="status<?php echo $num; ?>"
value="0"/>
</td>
</tr>
<?php } ?>
</form>