我正试图将一个数组从包含的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实际上是什么?