Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
由laravel发送的数组,在我从javascript使用它时会变为向后_Javascript_Php_Jquery_Laravel_Laravel 4 - Fatal编程技术网

由laravel发送的数组,在我从javascript使用它时会变为向后

由laravel发送的数组,在我从javascript使用它时会变为向后,javascript,php,jquery,laravel,laravel-4,Javascript,Php,Jquery,Laravel,Laravel 4,我在控制器中执行此操作 $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, actio

我在控制器中执行此操作

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

数组是向后的,因为第一个选项应该是带有
选择操作名称的选项,但它是最后一个选项。

您需要为数组元素提供索引0:

$actions = array(0 => 'Select Action Name');

由于使用字符串作为数组的键,因此无法获得使用基于整数的数组时的顺序

对于您的任务,一个简单的解决方案是向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>

var actions={{json_encode($actions)}};
var name={{json_encode($names)};
/*for(var键入操作){
console.log(key,actions[key]);
}*/
var期权=”;
选项=选项+(“”+操作[0]+“”);
for(变量输入名称){
选项=选项+(“”+名称[键]+“”);
}
变量选择=“”+选项+“”;
console.log(选择);

或者这可能是因为您以这种方式获取值。我不知道为什么会发生这种情况,但您可以始终使用
reverse()
函数来反转数组,就像这样
var reversedAction=action.reverse()
使用而不是
+
@Ben,请具体到哪里?我在
$actions=array('''=>'Select Action Name')+Action::list('Name','id')上有太多的
+
s:)@AnastasieLaurent
array\u unshift
将元素预先添加到数组中。+1表示感谢。但我已经得到了答案。非常感谢
<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>