2016-10-14 3 views
1

У меня есть цикл в PHP с javascript: первый массив печатает на консольном выходе. Но, во втором элементе массива я получаю эту ошибку:ReferenceError: array не определен

ReferenceError: array is not defined

<?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 массиве уже определены.

+4

Используйте '[]' вместо 'array()'. –

+0

У вас есть функция 'array()' в javascript? – adeneo

+0

'select2 ('data', array())' to 'select2 ('data', [])' было указано – JustOnUnderMillions

ответ

3

Вы должны использовать Array() вместо array() (не существует), так как JS учитывается регистр символов язык, или просто использовать [], так что это будет:

.select2('data', new Array()); 
//OR 
.select2('data', []); 

Надеется, что это помогает.

Смежные вопросы