我在单选按钮中有关于jQuery post的问题。当我使用jQuery AJAX post
单击单选按钮时,我无法保存单选按钮值这是我的表格:
<?php
$jaw = mysql_query("SELECT * FROM jwb");
$j=mysql_fetch_array($jaw);
?>
<div id="id_jwb"><?php echo $j['id_jwb'];?></div><?php echo $j['jwb'];?><br>
<input type="radio" name="jwb1" value="A" id="jwb1" <?php if($j['jwb']=='A'){echo 'checked';}?>>A<br>
<input type="radio" name="jwb1" value="B" id="jwb1" <?php if($j['jwb']=='B'){echo 'checked';}?>>B<br>
<input type="radio" name="jwb1" value="C" id="jwb1" <?php if($j['jwb']=='C'){echo 'checked';}?>>C<br>
这是我的jQuery帖子:
$("#jwb1").click(function(){
var jawaban = $("input[name=jwb1]:checked").val();
var id_jawaban = $("#id_jwb").html();
$.post('update_jwb.php',{ jwb: jawaban, id_jwb: id_jawaban });
});
这是我的php文件,用于插入db:
$con = mysql_connect($host, $username, $password);
mysql_select_db($database, $con);
$jwb = $_POST['jwb']; // $_POST['jwb'] dari jQuery-post
$id = $_POST['id_jwb'];
$sql = "UPDATE jwb SET jwb='{$jwb}' WHERE id_jwb='$id'";
$query = mysql_query($sql, $con);
if($query){
echo 'sukses';
}
else{
echo 'gagal';
}
答案 0 :(得分:0)
问题在于你的html / jQuery。您正在尝试使用单选按钮的ID,但是所有三个单选按钮都具有相同的ID值,因此浏览器不知道您希望它抓取哪个值。您可以通过使用以下jQuery来解决此问题,该jQuery使用输入名称而不是id,并且只获取被检查的单选按钮的值。:
$("input[name=jwb1]").click(function(){
var jawaban = $("input[name=jwb1]:checked").val();
var id_jawaban = $("input[name=jwb1]:checked").html();
$.post('update_jwb.php',{ jwb: jawaban, id_jwb: id_jawaban });
});
此外,我只是注意到这些输入没有任何内部HTML因此......
$("input[name=jwb1]:checked").html()
...不会返回任何内容,以便&#34; id_jwb&#34; post值永远是空的。这意味着你几乎可以摆脱这个帖子的价值。
如果要提交所选单选按钮的值和ID,则需要使每个单选按钮都具有唯一ID。然后使用以下jQuery:
$("input[name=jwb1]").click(function(){
var jawaban = $("input[name=jwb1]:checked").val();
var id_jawaban = $("input[name=jwb1]:checked").attr("id");
$.post('update_jwb.php',{ jwb: jawaban, id_jwb: id_jawaban });
});
答案 1 :(得分:0)
每个id值只能在文档中使用一次。如果为多个元素分配了相同的ID,则使用该ID的查询将仅选择DOM中的第一个匹配元素。但是,不应依赖此行为;使用相同ID的多个元素的文档无效。
因此,我建议您使用带有输入标记的类,并使用类选择器来附加单击事件。