将数组从PHP传递到Javascript(Jquery)的问题,如常见答案所示

Issue passing an array from PHP to Javascript (Jquery) as shown in common answers

本文关键字:问题 常见 答案 Jquery PHP 数组 Javascript      更新时间:2024-03-28

我正试图将一个数组从包含的php文件传递到javascript(也是外部的);它们似乎都能工作,因为:1)如果我在主页上尝试echo json_encode($array),而不是在脚本中传递它,那么输出是正确的;2) 如果我将此输出复制并粘贴到javascript,脚本将正常工作,并将元素添加为Select标记的选项。

但是如果我尝试在Javascript中分配

  var arrayConduttori = <?php echo json_encode($array); ?>;

就像我在stackoverflow上的类似问题中发现的那样,整个脚本不会运行,点击事件也不会发生任何事情;

var clo; //clone della riga in modifica, se devo annullare operazione
//funzione al clikc per immettere entrega
$(document).on('click', "table td a[id^='entr']",function(){
    //se ci sono altre righe in modifica le faccio ridiventare normali
    $('tr.edita').removeClass('edita').replaceWith(clo);
    // mi identifico la riga su cui devo lavorare
    var riga=$(this).attr('id').substr(4,12);
    var trriga='#tr'+riga;
//mi faccio la copia di backup della riga nella variablie clone
clo=$(trriga).clone();
//mi segno i dati che mi servono immettere automaticamente
var turno=$('#turn'+riga).text();
$(trriga).addClass('edita').html('<td id=form colspan=5><h2>Taxi '+riga.substr(1.11)+'</h2>' +
    'Turno '+turno +
    '<ul>' +
    '<li>Conductor</label><select id=selcond></select></li>' +
    '<li><label>Entrega</label><input type=text></li>'+
    '<li><label>Ahorro</label><input type=text></li>'+
    '<li><label>Gastos</label><input type=text></li>'+
    '</ul></td>');
//aggiungo al campo Select le opzioni conduttori dall'array
  var arrayConduttori = <?php echo json_encode($array);?>;
  $.each(arrayConduttori, function(key, value) {
  $('#selcond').append($("<option></option>").attr("value",key).text(value));
  });
});

如果你想回显php变量,它必须在.php文件中在.js页中回显

php在服务器端运行,js从客户端加载。所以当你加载.js文件时,

php已经在服务器中执行,当你尝试时,输出将打印在html页面中

<?php echo json_encode($array); ?>

在客户端,它不起作用。最好的方法是从服务器发送它,或者在加载像这样的外部js文件之前在主页中创建一个js变量

var arrayConduttori = <?php echo json_encode($array); ?>;

然后包括你的脚本

<script src='/your script'></script>

等一下!如果JavaScript文件是外部的,它怎么知道$array实际上是什么?