jQuery:每个名称都获得单选按钮组的值

时间:2014-03-22 01:29:08

标签: php jquery html

例如:

数据库中有五个名称(或者不止于此): 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 代码有效,因为 - &gt; $( “形式[名称= '测试']”)。这一次我把$(输入[name ='status']:选中),这就是为什么它不起作用,只出现一个值。

问题两个 另一个问题是我仍然试图将值插入数据库使用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”];它只插入一个数据,是最后一次检查。 我该怎么办?

答案2 好的,我已经得到了第二个问题的答案: 它应该是这样的:

$(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"];

叹息终于〜

2 个答案:

答案 0 :(得分:1)

利用serialize(),因此您无需为输入使用“其他”each()循环。此外,您的循环包括ID,如果有5,将导致冲突,因为您将为各种元素使用多个ID。如果您希望将其设为“是”或“否”,请更改该值

http://jsfiddle.net/r3An2/ - DEMO

var data = $('#testform').serialize();
alert(data);

另外,请确保您的<input />有结束标记;)

答案 1 :(得分:0)

您需要记住变量的上下文。在您提供的示例代码中,&#39;。$ num。&#39;没有被评估。括号中的循环也不是。您需要将它们包含在标记中,如下所示:

<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>