Laravel получает значение динамического переключателя в jquery, созданном для цикла for - PullRequest
0 голосов
/ 02 июня 2018

У меня есть форма, в которой я заполнил некоторые динамические переключатели, используя данные из базы данных.Код выглядит так -

<div class="row">
@foreach($status as $s)
    <div class="col-md-6">
        <label class="custom-control custom-radio">
            <input id="status" name="status" value="{{$s->id}}" type="radio" class="custom-control-input">
            <span class="custom-control-indicator"></span>
            <span id="status-name" class="custom-control-description">
                {{$s->specification}}
            </span>
        </label>
    </div>
@endforeach
</div

и в HTML -

 <div class="col-md-6">
    <label class="custom-control custom-radio">
        <input id="status" name="status" value="1" type="radio" class="custom-control-input">
        <span class="custom-control-indicator"></span>
        <span id="status-name" class="custom-control-description">Yes</span>
    </label>
</div>                                  

Да Да

Теперь я хочу отправить его на контроллер через ajax. Я пробовал это-

var status = document.getElementsByName('status').value;
if(status) {
    $.ajax({
       url: '/getpriceajax'+'/'+status,
       type: "GET",
       dataType: "json",
       success:function(data) {
           $('#calculated_price').val(data[0]);
           document.getElementById("price-show").innerHTML = "Product price is "+ data[0]+"and "+data[1];           
           $(".phone-value-details").slideDown(700);
           return false;
       }
   });
}else{

}

Но всегда отправляется значение первого переключателя независимо от того, выбрано оно или нет.Я понял, что это происходит потому, что две радио-кнопки имеют одинаковое имя, и по умолчанию jquery берет первую.Итак, я думаю о их динамическом переименовании.вроде-

name="status_{{$s->id}}"

Но я не знаю, как получить доступ к этому динамическому имени или идентификатору в Jquery.

Ответы [ 2 ]

0 голосов
/ 02 июня 2018

вы можете использовать

    $('input[name="status"]').each(function () {
        if($(this).is(':checked')){
            // $.ajax code with $(this).val()
        }
    });
0 голосов
/ 02 июня 2018

Вам не нужно менять имя входа status.Но вам нужно изменить атрибуты id, чтобы сделать их уникальными для всего документа.Или просто не используйте их, если они не нужны в клиентских скриптах или CSS.

Чтобы получить значение status, используйте следующий код:

var status = $('input[name="status"]:checked').val();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...