Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Passaggio array da PHP a JS

    Ciao ragazzi ho un problema, all' avvio nella index includo un file che mi recupera dei dati da un DB e li inserisce in due array PHP che poi vorrei trasformare in JS ma ho un problema che non riesco a comprendere... Intanto ecco il codice:

    Codice PHP:

    <?php
            
    for($i=0$i<count($idArray); $i++){
                
    $value $idArray[$i];
                echo 
    "$value";
            }
    ?>
    <script type="text/javascript" language="javascript">

        var idArray = new Array();
        var usernameArray = new Array();
        
    <?php    for($i=0$i<count($idArray); $i++){  ?>
                idArray[<?= $i ?>] = "<?= $idArray[$i?>"; 
                usernameArray[<?= $i ?>] = "<?= $usernameArray[$i?>"; 
    <?php    }    ?>

    </script>
    il primo FOR funziona correttamente, invece se io metto una echo nel secondo non mi visualizza niente... Infatti gli array JS non sono nemmeno inizializzati, dove credete sia l'errore?

  2. #2
    Ho risolto in questo modo:

    Codice PHP:
      <script language="javascript" >
          var idArray = new Array();
          var usernameArray = new Array();
          
      <?php    for($i=0$i<count($idArray); $i++){ ?>
                  idArray[<?php echo $i ?>] = "<?php echo$idArray[$i?>"; 
                  usernameArray[<?php echo $i ?>] = "<?php echo $usernameArray[$i?>"; 
      <?php    }    ?>
      
      </script>
    mettendo le echo funziona....mah...... per caso sapete la spiegazione di questo problema? mi sembrano analoghi i due codici

  3. #3
    Per ricostruire in javascript una array (anche multidimensionale, associativa o meno) presente in php, ti merita usare implode dal php: ti permetterebbe di inserire i valori delle entries della array direttamente dal costruttore senza doverle elencare una per una facendo nomeArray[indicearray]=... (e se sono parecchie, è anche un discreto risparmio di spazio).

    Guarda un po' se questo può darti qualche spunto PHP Pass To Javascript Php Array Associative Array Or Matrix

    ps:
    <?=
    e <?php echo
    sono due sintassi che sono equivalenti solo se il tuo server ha un php.ini che ammette gli shorttag (cioè <?=), il che probabilmente non è il tuo caso. E comunque nemmen ti merita usarli: echo funziona sempre, mentre gli shortag debbono essere abilitati dal php.ini, per cui a fini di portabilità del tuo codice ti merita usare sempre echo - se un giorno ti sposti su un altro server, non hai il grattacapo di dover modificare un php.ini che magari il tuo provider non ti consente di editare.

  4. #4
    Ciao! grazie per la risposta!

    L'articolo è precisissimo ed esaustivo, effettivamente con implode è un codice molto più pulito...

    Grazie mille come sempre!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.