简体   繁体   中英

PHP variable as Javascript variable name

I know this kind of post is frequently found on internet. But my problem is a little bit more dificult and I did not find an answer.

I want to make an associative array in Javascript in a loop with a variable name. ($JJ = table of object) ($JJ->getResto($DB,$acad) allows me to recover my database datas)

$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;

My problem is, I can not find the solution to right for example ville1["name"]. Each time the code is not "interpreted" it means I can have the string but it does not create my array.

Thank you a lot for all your ideas!

SOLUTION IN COMMENT. I used that : var string = "$ville"; window[string]["name"] = "blabla";

It works really well.

php is server language and javascript is clint browser language!
in fact you can't share variables!
But you can print variables to javascript code like:

<script>
  var myvar = '<?php echo $myvar; ?>';
</script>

if you want to send variables from javascript to php you must use Ajax
for array

<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>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM