在jquery中循环laravel数组集合

Posted

技术标签:

【中文标题】在jquery中循环laravel数组集合【英文标题】:Looping laravel array collection in jquery each 【发布时间】:2017-09-24 17:43:47 【问题描述】:

我想使用 jquery 在我的代码中附加一个选择标签,它的选项需要来自 laravel 数组集合的值

控制器

$array['skills'] = DB::table('skills')->get();

脚本

 <script type="text/javascript">
    var skill_count=$('#skill_count').val();
    var array = !!$array['skills']!!;

    $("#add-skill").click(function()
        skill_count++;            
        var skill='<div class="row skill"><div class="col-sm-4"><label for="name">Skill:</label><select name="skill['+skill_count+'][skill_name]" class="form-control">$.each( array, function( i, val ) <option value="+ val.id +"> val.skill_name </option>)</select></div><div class="col-sm-4"><label for="name">Experience:</label><select name="skill['+skill_count+'][pivot][experience_year]"   class="form-control">for(i=1;i<=30;i++)<option value="+ i +">i</option></select><select name="skill['+skill_count+'][pivot][experience_month]"   class="form-control">for(i=1;i<=12;i++)<option value="+i+">i</option></select></div><div class="col-md-12"><a class="skill-remove pull-right">- Remove Skill</a></div></div>'
        $(".show-skill").before(skill);
    );
</script>

但在浏览器中,val.id 和 val.skill_name 没有获取值。

console.log(val.skill_name);给我价值观

【问题讨论】:

【参考方案1】:

希望对你有帮助

var array =  [
    id: 2,
    skill_name: 'abc'
, 
    id: 3,
    skill_name: 'xyz'
];

var options;
$.each( array, function( key, value ) 
console.log(value.skill_name);
  options = options + '<option value="'+value.id+'">'+value.skill_name+'</option>';
);


var skillhtml = '<div><label for="name">Skill:</label><select name="skillname">'+options+'</select></div>';

$("#container").html(skillhtml);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<div id="container">
</div>

jsfiddle:https://jsfiddle.net/j5nkLabw/

【讨论】:

【参考方案2】:

因为要回显php数组,在此之前使用json_encode

var array = !!json_encode($array['skills'])!!; 或更好地在控制器中编码,

$jsonArray = json_encode($array['skills']);

然后在你的脚本中使用它 var array = !! $jsonArray!!

【讨论】:

以上是关于在jquery中循环laravel数组集合的主要内容,如果未能解决你的问题,请参考以下文章

如何在刀片模板的 foreach 循环中访问 laravel 集合?

收集后Laravel无法展平数组->忘记

jQuery$.each循环遍历详解,各种取值对比,$.each遍历数组对象Dom元素二维数组双层循坏类json数据等等

如何使用 laravel 和 mysql 数据库获取数组中的数组?

JQuery怎么循环输出数组元素

Laravel MIN MAX GroupBy 来自集合