2017-04-27 54 views
2

我想用jQuery来追加选择标记我的代码和它的选择需要从laravel阵列收藏价值循环laravel阵列收集的jQuery各

控制器

$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/

+0

谢谢它的工作 – Shalom

1

因为你想回声PHP数组,即使用json_encode

var array = {!!json_encode($array['skills'])!!};或更好的编码它的控制器之前,

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

之后,在你的脚本 var array = {!! $jsonArray!!}