Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    71

    array bidimensionale da php a javascript

    Salve a tutti,
    vi ringrazio per l'aiuto che mi state dando.

    Mi potreste dare un aiuto per quanto riguarda: l'array bidimensionale da php in javascritp sempre all'interno dello stesso file.
    index.php:fa una interrogazione al database e i valori li conserva nell'array $a
    codice:
     <?
    ....
    .. $a = array($i => array("pippo" => $riga[pippo],"pluto" => $riga[pluto],"descrizione" => $riga[Descrizione]));
    .....
    ..
    <html>
    <head>
    <<script language="javascript"> 
     
    var x= new Array(); 
    In questo punto vorrei che tutto il contenuto dell'array $a[][],come strutturato sopra, sia caricato dentro un array x , permettendomi di usare tutti i valori a mio piacimento
    alert(y)
    </script>
    </head>
    <body>
       aiuto
    </body>
    </html>
    Usare la matrice x con tutti i valori di $a[][].
    Spero di essermi spiegato bene!
    Grazie anticipatamente

  2. #2
    Ciao, ho risposto pochi giorni fa ad una domanda molto simile, la trovi qui

    http://forum.html.it/forum/showthrea...6#post13130186

    magari può esserti d'aiuto.

    Ciao
    La democrazia rappresentativa ha fatto il suo tempo, è ora di passare alla democrazia diretta.
    www.beppegrillo.it

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    71
    ...ti ringrazio ancora NonCeLaFACCIO+ per il tuo intervento.
    La mia situazione è questa:
    index.php
    codice:
    <?
    ....
    .. $a = array($i => array("pippo" => $riga[pippo],"pluto" => $riga[pluto],"descrizione" => $riga[Descrizione]));
    .....
    ..
    <html>
    <head>
    <script language="javascript"> <? } ?>
    <? for( $i=0; $i<$a[0].length; $i++) { ?>    
    document.write("sei in html ");
    var num="<?php print ($a[$i]["pippo"]) ?>"
    document.write(num);
    mi stampa solo l'ultimo elemento dell'array mettendo qua(...vedi grassetto..),invece se lo pongo all'ultimo rigo non mi stampa nulla!!
    Riflessione: mi fa capire che è un errore di chiusura del if ma dove?

    Grazie ancora per l'interesse!

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    71
    Siate così gentili...
    vi prego!! AIUTATEMI

  5. #5
    Ciao, volevo provare ad aiutarti ma non ho ben capito se anche in Javascript vuoi un array multidimensionale o deve essere un array semplice.

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    71
    grazie per l'interesse
    Hai ragione non sono stato molto chiaro
    In html deve essere sempre un array bidimensionale.
    Io ho fatto una prova di stampa dell'array ma mi stampa solo l'ultimo elemento!Non capisco se nel for non viene inizzializzata la variabile "i".
    Grazie in anticipo!
    codice:
    <?
    ....
    .. $a = array($i => array("pippo" => $riga[pippo],"pluto" => $riga[pluto],"descrizione" => $riga[Descrizione]));
    .....
    ..
    <html>
    <head>
    <script language="javascript"> 
    <? for( $i=0; $i<$a[0].length; $i++) ?>{     
    document.write("sei in html ");
    var num="<?php print ($a[$i]["pippo"]) ?>"
    document.write(num);
    }

  7. #7
    Allora premetto che non sono molto pratico a maneggiare codici altrui pertanto ho fatto un pò a modo mio. Io procederei in questo modo, e sicuramente qualcuno saprebbe far meglio di me:


    Innanzitutto vorrei farti notare un errore.
    Gli indici dell'array $riga dovrebbero avere gli apici o i doppi apici.
    Quindi invece di:
    codice:
    $a = array($i => array("pippo" => $riga[pippo],"pluto" => $riga[pluto],"descrizione" => $riga[Descrizione]));
    Dovrebbe essere:
    codice:
    $a = array($i => array("pippo" => $riga['pippo'],"pluto" => $riga['pluto'],"descrizione" => $riga['Descrizione']));
    Poi ho proceduto in questo modo:
    Codice PHP:
    <script type="application/javascript" language="javascript">
    var x = new Array();
    <?php
        
    foreach ($a as $contenuto) {
    ?>
    var arrayAssociativo = {<?php
            $stringa 
    "";
            foreach (
    $contenuto as $chiave => $valore) {
                
    $stringa .= "'" $chiave "' : '" $valore "', ";
            }
            print 
    substr($stringa0, -2);
    ?>}
    x.push(arrayAssociativo);
    <?php
        
    }
    ?>
    </script>
    Così dovresti ottenere x come array multidimensionale.

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    71
    ...grazie!
    Ho fatto il copia e incolla della seconda parte del codice che mi hai passato e come prova di stampa ho aggiunto
    document.write(x[1][1]);
    non mi ha stampato nulla! I valori all'interno dell'array sono numeri
    Vi prego aiutatemi

  9. #9
    Ciao,
    ho avuto un po' da fare stamattina in ufficio e vedo che ti hanno già risposto comunque ti do anche la mia soluzione, una più una meno...

    Questo serve a trasferire l'array bidimensionale php $a nell'array bidimensionale javascript x.
    codice:
    <?php
    
    $a = array("primo" => array("pippo" => 100,"pluto" => 200,"descrizione" => 300), "secondo" => array("qui" => 400,"quo" => 500,"qua" => 600));
    
    print("<script type='text/javascript'>\r\n");
    
    print("var x = new Array();\r\n");
    
    foreach ($a as $i => $arr) {
       print("var y = new Array();\r\n");
       foreach ($arr as $j => $value) {
          print("y['$j']= $value;\r\n");
       }
       print("x['$i'] = y;\r\n");
    }
    
    print("document.write(x['primo']['pippo'] + '
    ');\r\n");
    print("document.write(x['primo']['pluto'] + '
    ');\r\n");
    print("document.write(x['primo']['descrizione'] + '
    ');\r\n");
    print("document.write(x['secondo']['qui'] + '
    ');\r\n");
    print("document.write(x['secondo']['quo'] + '
    ');\r\n");
    print("document.write(x['secondo']['qua'] + '
    ');\r\n");
    
    print("</script>\r\n");
    
    ?>
    Le document.write finali servono solo a confermare il corretto caricamento.

    Come vedi esploro ciascun elemento dell'array con due cicli foreach nidificati caricando un array monodimensionale intermedio, y, che ripulisco ad ogni giro.

    Vedi se può andar bene.

    Ciao
    La democrazia rappresentativa ha fatto il suo tempo, è ora di passare alla democrazia diretta.
    www.beppegrillo.it

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    71
    vi ringrazio ancora per l'aiuto che mi state dando!

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 © 2024 vBulletin Solutions, Inc. All rights reserved.