jQuery: каждое имя получает значение группы переключателей

0

Например:

В базе данных есть пять имен (или будет больше): 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"];

вздох наконец ~

  • 0
    Когда вы хотите значения? Должно ли это быть вызвано щелчком / отправкой / изменением переключателя?
  • 0
    Аааааааааааааааааааааааааааааааааааааааааааааааао, для того, чтобы проверить, работает она или нет, если она сработает, я отправлю их
Показать ещё 4 комментария
Теги:

2 ответа

1

Воспользуйтесь serialize() поэтому вам не нужно использовать "другой" цикл each() для ваших входов. Кроме того, ваш цикл включает идентификаторы, которые, если они есть, вызовут конфликт, потому что вы будете использовать несколько идентификаторов для различных элементов. Измените значение, если вы хотите сделать его "да" или "нет",

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

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

Кроме того, убедитесь, что ваш <input/> имеет закрывающий тег;)

  • 0
    Спасибо :) это тоже идеально. Я думаю, как эти значения вставить в базу данных, используя ajax-запрос к файлу php.
  • 1
    В этом посте есть хорошие ответы - stackoverflow.com/questions/9430918/… - вы можете либо вместо этого использовать serializeArray() , либо увидеть второй ответ с использованием serialize() и затем получить данные с помощью $_POST['status1'], $_POST['status2'], etc..
Показать ещё 1 комментарий
0

Вам нужно запомнить контекст ваших переменных. В примере кода, который вы указали, '. $ 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>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню