Chiamata javascript da php con passaggio array

di il
5 risposte

Chiamata javascript da php con passaggio array

Salve,

devo passare un array da php a javascript come di seguito:

<?php
		//Array spese
		$condominio = array(153, 152, 170, 40, 0);
		echo '<script type="text/javascript">jsFunctionCon();</script>';
		// echo '<script type="text/javascript">jsFunctionCon('$condominio');</script>'; questa riga non funziona, dove sbaglio????
?>

function jsFunctionCon(condominio)
{
	  
	 
}

mi suggerite il codice corretto? Grazie

5 Risposte

  • Re: Chiamata javascript da php con passaggio array

    Devi  rimettere <script>   prima della funzione javascript e </script>  dopo la parentesi graffa di chiusura della funzione,

    poi devi togliere il commento php // prima di echo nella riga che non ti funziona

  • Re: Chiamata javascript da php con passaggio array

    Sorry,

    la funzione jsFunctionCon si trova in un fiile esterne js (io per comodità la riporto nello stesso blocco di codice.

    la riga del php con la echo dovrebbe passare alla funzione esterna (ripeto jsFunctionCon) l'array $condominio.

    dove é l'errore?

    <?php
    		//Array spese
    		$condominio = array(153, 152, 170, 40, 0);
    		echo '<script type="text/javascript">jsFunctionCon('$condominio');</script>'; //questa riga non funziona, dove sbaglio????
    ?>
    
    function jsFunctionCon(condominio)
    {
    	alert(condominio);
    
    	  
    	 
    }
  • Re: Chiamata javascript da php con passaggio array

    Hai passato un array in PHP a una funzione JS.

    Devi prima trasformare l'array php in array js (condomiojs);

    Il seguente codice funziona perchè lo ho testato in locale,

    ho messo la funzione js entro il tag head;

    <!DOCTYPE html>
    
    <head>
    <script>
    
    function jsFunctionCon(condominiojs)
    {
    	alert('I valori dell array in js ' + condominiojs);
       // alert(condominiojs[0]);
       // alert(condominiojs[1]);
        //  eccetera eccetera
    	 
    }
    
    </script>
    
    </head>
    
    <?php
    		//Array spese
    		$condominio = array(153, 152, 170, 40, 0);
    
    
            if (count($condominio) > 0) {
    		
    	echo "<script type=\"text/javascript\">
        const  condominiojs  =[];";
    for ($i=0; $i !=count($condominio); $i++)  {
    
        echo  "condominiojs[".$i."] =" . $condominio[$i]   .";";
    
    }
    
    echo "</script>";	
    
    }
    
    
    		
    		echo "<script type=\"text/javascript\">jsFunctionCon(condominiojs)</script>"; //questa riga adesso funziona!!!
    ?>
    
  • Re: Chiamata javascript da php con passaggio array

    04/09/2023 - Vrobbi ha scritto:


    for ($i=0; $i !=count($condominio); $i++) { echo "condominiojs[] =" . $condominio[$i] .";"; }

    Siamo sicuri che questo codice produca il risultato desiderato? :|

  • Re: Chiamata javascript da php con passaggio array

    L'uso di un array letterale è il modo più semplice per creare un array JavaScript.

    const array_name = [item1, item2, ...];

    Differenza tra JS ARRAY const dove const è una parola con ambito  di blocco, un array dichiarato con var non ha ambito di blocco https://www.w3schools.com/js/js_array_const.asp

    <script>
    <?php
    $string1 = 'var condominiojs = [';
    $string2 = '';
    $condominio = array(153, 152, 170, 40, 0);
    for ($i=0; $i < count($condominio); $i++) {
    $string2 = $string2 . $condominio[$i]  . ', ';
    }
    $result = $string1 . $string2 . '];'  . "\n";
    echo $result;
    ?>
    var myarr = <?php echo json_encode($condominio); ?>;
    alert([condominiojs, myarr]);
    </script>

    echo json_encode($condominio) di php stampa a schermo del testo racchiuso tra array letterale o var condominiojs creato dalla stampa a schermo di $result

Devi accedere o registrarti per scrivere nel forum
5 risposte