Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Javascript - Come passare array da php a funzione Javascript?
Forum - Javascript - Come passare array da php a funzione Javascript?

Avatar
cuore napoletano (Normal User)
Pro


Messaggi: 129
Iscritto: 03/02/2011

Segnala al moderatore
Postato alle 14:36
Mercoledì, 28/05/2014
Salve a tutti, chiedoil favore di aiutarmi a risolvere un problema.
Ho un file chiamato funzioni.php.
In questo file ho la seguente funzione:
<?php

include('remoto\controlliForm.inc.js');

function aggancia_db($db,$tabella,$form,$tablellaHTML,$action,$eccezione,$campiNumerici)
{
....
codice ecc

echo "<input type='text' id='$n' name='$n' size='30' onchange='javascript:funzioniControllo()'    ><br>";

.... altro codice ecc
}

?>

Ho il bisogno di inviare l'argomento $campiNumerici [definito $campiNumerici=array(1,2,3,4,5);]
ad una funzione javascript javascript:funzioniControllo() inclusa in controlliForm.inc.js. ogni volta
che inserisco un dato nell'input.

Ho fatto molti tentativi ma senz a successo,potete aiutarmi?Grazie

PM Quote
Avatar
Bonny (Member)
Expert


Messaggi: 437
Iscritto: 24/04/2009

Segnala al moderatore
Postato alle 17:23
Mercoledì, 28/05/2014
Nel titolo parli di "passare" e poi di "inviare"..
Comunque se ho capito bene cosa ti serve potresti fare una cosa del genere:
Codice sorgente - presumibilmente Delphi

  1. <html>
  2.   <head>
  3.     <script>
  4.       function funzioniControllo(arg0) {
  5.         console.log(arg0);
  6.       }
  7.     </script>
  8.   </head>
  9.   <body>
  10.     <?php
  11.     $campiNumerici = array(1, 2, 3, 4, 5);
  12.     //serializzo l'array in formato string
  13.     $serialized = "";
  14.     for ($i = 0; $i < count($campiNumerici); $i++) {
  15.       $serialized .= "'" . $campiNumerici[$i] . "',";
  16.     }
  17.     //valorizzo l'array
  18.     echo "<script>var campiNumerici = [" . $serialized . "];</script>";
  19.  
  20.     //passo come argomento l'array alla funzione
  21.     echo "<input type='button' id='n0' name='n0' size='30' onclick='javascript:funzioniControllo(campiNumerici)' value='log array content'>";
  22.     ?>
  23.   </body>
  24. </html>



in sostanza, aggiungo un array al DOM valorizzandolo con php e lo passo come argomento alla funzione js.

PM Quote
Avatar
cuore napoletano (Normal User)
Pro


Messaggi: 129
Iscritto: 03/02/2011

Segnala al moderatore
Postato alle 11:17
Giovedì, 29/05/2014
Ciao Bonny,
funziona, grazie mille

PM Quote
Avatar
cuore napoletano (Normal User)
Pro


Messaggi: 129
Iscritto: 03/02/2011

Segnala al moderatore
Postato alle 13:53
Giovedì, 29/05/2014
Scusa avrei ancora una domanda:
vorrei passare alla funzione anche il nome del form che ho salvato in $form e cioè così:

echo "<input type='button' id='n0' name='n0' size='30' onclick='javascript:funzioniControllo(campiNumeric,$formi)' value='log array content'>";

ma mi da errore.
Potresti spiegarmi come posso aggiungere questo parametro?grazie

PM Quote
Avatar
Bonny (Member)
Expert


Messaggi: 437
Iscritto: 24/04/2009

Segnala al moderatore
Postato alle 17:07
Giovedì, 29/05/2014
Mi da errore è troppo generico :pat:
Chi da errore ? php? javascript?

A naso dico Javascript ..
Se è cosi devi aggiungere il secondo parametro alla funzione js funzioniControllo
Codice sorgente - presumibilmente Javascript

  1. function funzioniControllo(arg0, arg1) {
  2.         console.log(arg0);
  3.         console.log(arg1);
  4. }


Ultima modifica effettuata da Bonny il 29/05/2014 alle 17:08
PM Quote
Avatar
cuore napoletano (Normal User)
Pro


Messaggi: 129
Iscritto: 03/02/2011

Segnala al moderatore
Postato alle 17:25
Giovedì, 29/05/2014
Ciao, grazie per la risposta.
Avevo già aggiunto il secondo parametro arg1;
Con console.log non ottengo messaggi;
Ho provato con alert(arg1); e mi ritorna [object];
cosa posso fare?

Riscrivo il codice.

echo "<input type='text' id='$n' name='$n' size='30' onchange='javascript:funzioniControllo(campiNumerici,$form)'   >

Ultima modifica effettuata da cuore napoletano il 29/05/2014 alle 17:33
PM Quote
Avatar
Bonny (Member)
Expert


Messaggi: 437
Iscritto: 24/04/2009

Segnala al moderatore
Postato alle 17:37
Giovedì, 29/05/2014
annnnnnn...

$formi è una stringa giusto??

mettilo tra apici nella echo, cosi:
Codice sorgente - presumibilmente Javascript

  1. echo "<input type='button' id='n0' name='n0' size='30' onclick='javascript:funzioniControllo(campiNumerici, \"$form\")' value='log array content'>";



in questi casi sarebbe meglio utilizzare printf al posto di echo...

PM Quote
Avatar
cuore napoletano (Normal User)
Pro


Messaggi: 129
Iscritto: 03/02/2011

Segnala al moderatore
Postato alle 17:04
Sabato, 07/06/2014
grazie

PM Quote