Newsgroup: it.comp.lang.javascript
Titolo: variabile php dapassare ad uno script javascript

qual'è la soluzione migliore per passare una variabile array creata con
codice php, ad uno script javascript;

 codice php, ad uno script javascript;
Dipende se è un array semplice, ovvero solo con indici numerici e come
valori delle primitive (numeri, stringhe..) oppure no. 
In tal caso l'approccio nel "pratico" cambia parecchio.
Tecnicamente cmq si tratta sempre di scrivere, tramite PHP, del codice
script che contenga i valori in questione:
<?php
	$array = array('last name', 'email', 'phone');
?>
<script type="text/javascript">
	var jsarr=['<?=implode("','",$array)?>'];
</script>
Ovviamente la cosa si complica nel caso di array php più complessi, ma il
concetto di fondo è il medesimo.
-- 
"Se c'è qualcosa di più importante del mio ego su questa nave,
la voglio catturata e fucilata."

Il Fri, 18 Aug 2006 20:33:00 +0200, ZER0 ha scritto:
nell'esempio che hai fatto usi un array che semplice; nel mio caso è il
risultato di una query (SELECT campo1, campo2, campo3 FROM tabella1 ....);
quindi un array a tre colonne; hai un esempio?
o link?

 quindi un array a tre colonne; 
Un array a tre colonne che cosa vuol dire? Significa un array di array?
In tal caso in output dovrai avere qualcosa tipo:
jsarr = [ 	['campo 1','campo 2', 'campo 3'],
		['campo 1','campo 2', 'campo 3']
]
Per far ciò in PHP dovrai ciclare la query risultante e scrivere il codice
client di conseguenza, come mostrato precedentemente (anche senza implode,
per fare dei controlli maggiori in caso).


 var jsarr=['<?=implode("','",$array)?>'];
Giusto un puntiglio, ma č meglio evitare la forma contratta (short) nel
php (<? invece che <?php e <?= invece che <?php echo).
Solitamente nei server le impostazioni di apache non lo prevedono
perche' va in conflitto con la dichiarazione xml (<?xml...) che puň
essere inserita nei documenti xhtml 1.0 transitional o successivi
Sarebbe quindi meglio scrivere:
var jsarr=['<?php echo implode("','",$array)?>'];
-- 
Mr. Fix @ home

 Solitamente nei server le impostazioni di apache non lo prevedono
Sul server dove faccio le mie prove, che ha una distribuzione Debian mi
pare, non ci sono problemi ad utilizzare la forma contratta.
-- 
~ "When you have eliminated the impossible, whatever remains,
however improbable, must be the truth." (S.H.)

 Ti è mai capitato un caso pratico in cui hai avuto problemi di questo tipo?
A me si`.
generando file xml (che iniziano con <?xml ...) tramite php.
Se hai gli short tags attivi nel server, interpreta l'xml come se fosse
php e, naturalmente, da` problemi.
Tuttora Eclipse mi dice che <?xml non e` un tag valido in un file .php :(
La stessa cosa per tutti i linguaggi di markup che usano <? come escape e
si aspettano l'interprete dopo (tutti quelli derivati da xml, in pratica)
Bye.

 occasione di verificare laddove potesse creare davvero confusione.
Basta creare un documento xhtml mettendo nella prima riga la
dichiarazione xml:
<?xml version="1.0" encoding="utf-8"?>
La parte iniziale (<?xml) viene fraintesa e php segnala un errore (il
parser legge <? e pensa che stia per partire uno script php ma poi non
capisce i comandi che seguono).
Il problema si verifica solo se il file ha .php come estensione,
altrimenti il parser php non se ne occupa.
Se vuoi fare una prova incolla questo in un documento di testo e salvalo
come test.php
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd
">
<html xmlns="
http://www.w3.org/1999/xhtml
" xml:lang="it" lang="it">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Test</title>
</head>
<body>
<p>Ka-krash!  : )</p>
</body>
</html>
In alternativa puoi mettere uno script php nella prima riga, in modo che
scriva la frase incriminata:
<?php echo '<?xml version="1.0" encoding="utf-8"?>';?>
oppure disattivare il short_open_tag nel file di configurazione di
Apache (anche solo a livello di Virtual Host)


 Tuttora Eclipse mi dice che <?xml non e` un tag valido in un file .php :(
Mai fidarsi degli IDE :)


 Apache (anche solo a livello di Virtual Host)
Il server su cui faccio le prove non è mio, e bene o male si attengono alle
impostazione della distribuzione Debian, se ho ben capito.
