我知道这种帖子经常在互联网上找到。但我的问题有点困难,我没有找到答案。
我想在一个带有变量名的循环中在Javascript中创建一个关联数组。 ($ JJ =对象表) ($ JJ-> getResto($ DB,$ acad)允许我恢复我的数据库数据)
$JJ = new RestaU();
$JJ = $JJ->getResto($DB,$acad);
for ($i = 0; $i <= sizeof($JJ)-1; $i++) {
//Datas recovering
$lat = $JJ[$i]->loc_lat;
$long = $JJ[$i]->loc_long;
$name = $JJ[$i]->nom;
$ville = $JJ[$i]->ville;
//String treatment to avoid spaces
$ville = str_replace(" ","",$ville);
$name = str_replace(" ","",$name);
echo <<< SC
<script>
//here $ville will contain an google map object associated to the ville name.
//It means that I need to change it for each "for" loop.
var $ville = new Object();
//that is why here I need to have $ville["name"] to generate a table for each city
//and have an access to it later.
$ville+["name"] = new google.maps.LatLng($lat,$long);
console.log(string2);
</script>
SC;
我的问题是,我找不到正确的解决方案,例如ville1 [“name”]。每次代码没有“解释”时,这意味着我可以拥有字符串,但它不会创建我的数组。
非常感谢您的所有想法!
评论中的解决方案。 我用过: var string =“$ ville”; window [string] [“name”] =“blabla”;
效果很好。
答案 0 :(得分:1)
php是服务器语言,javascript是clint浏览器语言!
实际上你不能分享变量!
但您可以将变量打印到javascript代码,如:
<script>
var myvar = '<?php echo $myvar; ?>';
</script>
如果你想将变量从javascript发送到php,你必须使用Ajax
对于数组
<script>
<?php
$array = array('index1'=>'hellow World!','index2'=>'Iran haven`t nuclear bomb');
echo 'var arryname = new Array();';
foreach($array as $key=>$val){
echo "\n arryname['{$key}'] = '{$val}';";
}
?>
</script>