Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    2

    passaggio di array php a funzione js

    dovrei creare una funzione js che prenda come argomenti una stringa e un array multidimensionale in php. L'array contiente 20 regioni italiane, e ogni regione italiana contiente
    delle informazioni relative a quella regione.

    $centri_table contiene tutte le regioni e voglio che la funzione restituisca tutte le informazioni relative a sardegna

    <AREA href="javascript: mappa_centri('sardegna',<?php $centri_table?>)"

    function mappa_centri(regione,regioni){

    }

    grazie

  2. #2
    Ciao,
    l'errore che stai commettendo è in questa sintassi

    <?php $centri_table?>

    che, di per sé, non significa nulla perché fra i tag php devono essere contenute istruzioni php e non semplici nomi di variabili. E' necessaria un'istruzione php che utilizzi quella variabile. La tua intenzione, chiaramente, era che quella variabile fosse utilizzata dal js per il passaggio di parametri ma questo non è possibile perché il js si trova sul client e non può utilizzare variabili che si trovano sul server.

    Se si trattasse di una semplice variabile e non di un array ti direi di scriverla così:

    <?php print($centri_table); ?>

    Trattandosi però di un array, bidimensionale per di più, la cosa è più complessa.

    Credo che la soluzione migliore sia di costruire sul client un array js speculare a quello php presente sul server e poi utilizzarlo nel passaggio di parametri.

    In questo esempio creo sul client la copia a_1 di un array $a_1 presente sul server e poi ne visualizzo gli elementi tramite alert.

    codice:
    <?php
    $a_1 = array('a', 'b', 'c', 'd', 'e', 'f');
    
    print ("<script type=\"text/javascript\">\r\n");
    print ("a_1 = new Array();\r\n");
    
    $i=0;
    foreach ($a_1 as $value) {
       print ("a_1[$i] = '$value';\r\n");
       $i++;
    }
    
    print ("alert(a_1[0]);\r\n");
    print ("alert(a_1[1]);\r\n");
    print ("alert(a_1[2]);\r\n");
    print ("alert(a_1[3]);\r\n");
    print ("alert(a_1[4]);\r\n");
    print ("alert(a_1[5]);\r\n");
    
    print '</script>'
    
    ?>

    Questo è ciò che arriva al client

    codice:
    <script type="text/javascript">
    a_1 = new Array();
    a_1[0] = 'a';
    a_1[1] = 'b';
    a_1[2] = 'c';
    a_1[3] = 'd';
    a_1[4] = 'e';
    a_1[5] = 'f';
    alert(a_1[0]);
    alert(a_1[1]);
    alert(a_1[2]);
    alert(a_1[3]);
    alert(a_1[4]);
    alert(a_1[5]);
    </script>
    Il tuo array è bidimensionale quindi dovrai lavorare un po' di più però il principio è questo.

    Se hai altre domande magari sarà meglio usare la sezione php.


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

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.