为每个迭代选择元素分配值

时间:2015-06-06 14:57:32

标签: javascript php jquery html laravel

                 @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个用户。我需要获取所选用户的月份和年份才能通过网址。

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

上面的脚本返回第一个用户的选定月份和年份,其余部分未定义。因为,我是新手,这表明我的想法。提前谢谢。

1 个答案:

答案 0 :(得分:0)

通过上面的代码,您将创建具有相同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;
    }

Fiddle