由laravel发送的数组,当我从javascript中使用它时变得向后
Posted
技术标签:
【中文标题】由laravel发送的数组,当我从javascript中使用它时变得向后【英文标题】:array, which has been sent by laravel, becomes backwards when I used it from javascript 【发布时间】:2014-09-12 08:51:54 【问题描述】:我在控制器中这样做
$actions = array('' => 'Select Action Name') + Action::lists('name' , 'id');
然后我将 $actions 数组发送到视图。
在 javascript 中:
<script>
var actions = json_encode($actions) ;
/*for (var key in actions)
console.log(key, actions[key]);
*/
var options = "";
for(var key in actions)
options = options+ ('<option value="'+key+'">'+actions[key]+"</option>");
var select = '<select name="action_id">' + options + "</select>";
console.log(select);
</script>
打印select
结果:
<select name="action_id">
<option value="1">Remove White Space</option>
<option value="2">extract map latitude</option>
<option value="3">Extract map longitude</option>
<option value="">Select Action Name</option>
</select>
数组是向后的,因为第一个选项应该是带有Select Action Name
的那个,但它是最后一个选项。
【问题讨论】:
或者您可能会以这种方式获得您的价值观。 我不知道为什么会这样,但你总是可以使用reverse()
这样的函数来反转你的数组 var reversedAction= action.reverse()
使用array_unshift 而不是+
。
@Ben 请问具体在哪里?我有太多+
s :)
@AnastasieLaurent on $actions = array('' => 'Select Action Name') + Action::lists('name' , 'id');
, array_unshift
将元素添加到数组中。
【参考方案1】:
你需要给你的数组元素一个索引0:
$actions = array(0 => 'Select Action Name');
【讨论】:
【参考方案2】:由于您使用字符串作为数组的键,因此如果使用基于整数的数组,您将无法获得排序
对于您的任务,一个简单的解决方案是将两个数组传递给您的 javascript,一个包含
$actions = array('Select Action Name')
将您的姓名发送到另一个数组中
$names = Action::lists('name' , 'id');
现在像这样修改你的脚本
<script>
var actions = json_encode($actions) ;
var names = json_encode($names) ;
/*for (var key in actions)
console.log(key, actions[key]);
*/
var options = "";
options = options+ ('<option value="''">'+actions[0]+"</option>");
for(var key in names)
options = options+ ('<option value="'+key+'">'+names[key]+"</option>");
var select = '<select name="action_id">' + options + "</select>";
console.log(select);
</script>
【讨论】:
为您的努力+1。但我已经得到了答案。非常感谢以上是关于由laravel发送的数组,当我从javascript中使用它时变得向后的主要内容,如果未能解决你的问题,请参考以下文章
Laravel:当我从 jquery 添加变量时,如何修复 Null 输入?