#javascript #php #arrays
#javascript #php #массивы
Вопрос:
У меня есть цикл PHP
с помощью javascript: первый массив выводится на консоль. Но во втором элементе массива я получаю эту ошибку:
Ошибка ссылки: массив не определен
<?php foreach($job_requirements_names as $jrn){ ?>
<div class="col-md-12 form-group">
<label class="control-label label-top" for="requirement_<?=strtolower($jrn['name'])?>"><?=$jrn['name']?></label>
<?php
$query = new QUERY(array('TABLE'=>$table_name, 'KEY'=>array('name'=>$jrn['name']), 'ASC'=>'n_option'));
$options = $query->fetchAll();
unset($query);
$id = "requirement_".strtolower($jrn['name']);
?>
<script>
// For countries:
var data = '<?php echo json_encode($options);?>';
console.log(data);
data = JSON.parse(data);
data = data.map(function (v) { return {id: v.id, text: v.n_option}; });
$("#<?=$id?>").select2({
multiple: true,
data: data
}).select2('data', array());
</script>
<input id='requirement_<?=strtolower($jrn['name'])?>' name="requirement_<?=strtolower($jrn['name'])?>" class="col-md-12"/>
</div>
<?php } ?>
Как вы можете видеть в javascript
array уже определен.
Комментарии:
1. Используйте
[]
вместоarray()
.2. Итак, у вас есть
array()
функция в javascript?3.
select2('data', array())
select2('data', [])
подразумевалось4.
array()
это вызов функции, и у вас нет имени функцииarray
.
Ответ №1:
Вы должны использовать Array()
вместо array()
(Не существует), поскольку JS является языком, чувствительным к регистру, или просто использовать []
, так что это будет :
.select2('data', new Array());
//OR
.select2('data', []);
Надеюсь, это поможет.