为每个迭代选择元素赋值


Assigning value to each iterative select element

                 @foreach($users as $user)
                      <tr>
                        <td>
                            <select id="select_month" name="month" class="form-control">
                                <option value="01" >Jan</option>
                                <option value="02" >Feb</option>
                                <option value="03">Mar</option>
                                <option value="04" >Apr</option>
                                <option value="05" >May</option>
                                <option value="06">Jun</option>
                                <option value="07" >Jul</option>
                                <option value="08" >Aug</option>
                                <option value="09">Sep</option>
                                <option value="10" >Oct</option>
                                <option value="11" >Nov</option>
                                <option value="12">Dec</option>
                            </select>
                        </td>
                        <td>
                            <select id="select_year" name="year" class="form-control">
                                <option value="2015">2015</option>
                                <option value="2016">2016</option>
                                <option value="2017">2017</option>
                            </select>
                        </td>
                        <td>
                            <div id="url" class="btn-group mr5">
                                <button class="btn btn-primary btn-sm" onclick="url('{{ $user->id }}')">Invoice</button>
                            </div>
                        </td>
                    </tr>
                @endforeach

上面的代码显示10个用户。我需要获得所选用户的月份和年份,以便通过url。

<script>
    function url(id){
        var month = $('#select_month').val();
        var year = $('#select_year').val();
        var url = "{{ web_url() }}/user/invoice/generate?id="+id+"&month="+month+"&year="+year;
        window.location.href = url;
    }

上面的脚本为第一个用户返回选定的月份和年份,其余用户返回未定义的月份和年份。既然我是新手,请给我提个主意。

通过上面的代码,您正在创建具有相同id的多个元素。尝试将计数器附加到每个ID id="select_month"+i(使用适当的PHP语法,因为我不知道PHP),我将是循环计数器。

在函数中传递当前索引

function url(id,i){
        var month = $('#select_month'+i).val();
        var year = $('#select_year'+i).val();
        var url = "{{ web_url() }}/user/invoice/generate?id="+id+"&month="+month+"&year="+year;
        window.location.href = url;
    }

小提琴