首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单击单选按钮时jQuery post

单击单选按钮时jQuery post
EN

Stack Overflow用户
提问于 2014-07-24 12:50:38
回答 2查看 749关注 0票数 0

我有关于单选按钮的jQuery post的问题。当我使用jQuery AJAX post点击单选按钮时,我无法保存单选按钮值

这是我的表格:

代码语言:javascript
复制
<?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上的帖子:

代码语言:javascript
复制
$("#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 });
});

下面是我插入db的php文件:

代码语言:javascript
复制
$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';
}
EN

回答 2

Stack Overflow用户

发布于 2014-07-24 13:08:37

问题出在html/jQuery上。您正在尝试使用单选按钮的id,但是所有三个单选按钮都具有相同的id值,因此浏览器不知道您希望它获取哪个值。您可以通过使用以下jQuery来解决此问题,该You使用输入名称而不是id,并且只获取选中的单选按钮的值:

代码语言:javascript
复制
$("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,因此...

代码语言:javascript
复制
$("input[name=jwb1]:checked").html()

...不会返回任何内容,因此"id_jwb“post值将始终为空。这意味着你可以很好地摆脱这个post值。

如果想要提交所选单选按钮的值和id,则需要使每个单选按钮都有一个惟一的id。然后使用以下jQuery:

代码语言:javascript
复制
$("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 });
});
票数 0
EN

Stack Overflow用户

发布于 2014-07-24 13:12:13

每个id值在文档中只能使用一次。如果为多个元素分配了相同的ID,则使用该ID的查询将只选择DOM中第一个匹配的元素。但是,不应该依赖这种行为;包含多个使用相同ID的元素的文档是无效的。

因此,我建议你使用带有input标签的class,并使用class选择器来附加一个click事件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24925338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档