passare variabili da php a javascript

criccroc

Utente Attivo
7 Gen 2011
44
0
6
Dovrei creare una pagina HTML (listautenti.html) che viene popolata richiamando un file .PHP. Ecco un esempio:


Codice:
<html>
<div>
<?php 
.... apre database
.... seleziona elenco utenti
.... inserisce elenco nella variabile $listautenti
echo $listautenti; 
?>
</div>
<html>
Da quello che ho capito finora e' che questo si puo fare SOLTANTO SE LA PAGINA VIENE SALVATA IN FORMATO .PHP (e non HTML come nel mio caso). Infatti ho provato a fare cose simili in una pagina HTML e non funziona.
Avedo quindi L'OBBLIGO di salvare questa pagina in .html ho capito (e verificato) che si puo fare tranquillamente utilizzando JAVASCRIPT (e AJAX??).

Quindi avrei la necessità di capire con un piccolo esempio come richiamare un file .php in Javascript ed eseguire il codice .php che mi genera la variabile e visualizzare questa variabile nella pagina .html
Grazie
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
23
Roma
alessandro1997.netsons.org
In una pagina con estensione .php puoi scrivere anche del codice HTML, basta che non sia racchiuso tra i tag PHP. Non puoi fare al contrario, ossia in una pagina con estensione .html non puoi scrivere codice PHP, a meno che il Web server non sia configurato in maniera particolare.
 

criccroc

Utente Attivo
7 Gen 2011
44
0
6
Grazie Alessandro, ma e' quello che ho appena scritto.
Pertanto dimentichiamoci la soluzione CODICE PHP DENTRO HTML.
Devo ASSOLUTAMENTE avere una pagina HTML che carica una pagina PHP ESTERNA.
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
23
Roma
alessandro1997.netsons.org
Scusami, avevo letto male. Comunque, prima di passare ad AJAX, possiamo pensare ad altre soluzioni. Ad esempio potresti usare il rewrite degli URL per trasformare la pagina in .html. Devi rinominare la pagina con estensione .php, quindi creare un file .htaccess nella cartella in cui si trova con all'interno queste direttive:
Codice:
RewriteEngine On
RewriteRule ^pagina.html$ pagina.php [L]
Ovviamente devi cambiare il nome della pagina. In questo modo accedendo a http://www.example.com/pagina.html otterrai lo stesso output che avresti accedendo a http://www.example.com/pagina.php.
 

criccroc

Utente Attivo
7 Gen 2011
44
0
6
Caro Alessando, ti ringrazio per questa informazione che sicuramente testero' quanto prima e ti faro' sapere.

Penso che, analizzando meglio il mio caso, dobbiamo trovare un altra soluzione. Ti spiego perchè:

sto creando sul mio sito delle pagine web per gli utenti che si iscrivono. In pratica se Mario Rossi si iscrive, avrà una pagina (copiata da un template standard uguale per tutti) tipo: nomesito/mariorossi.html , pertanto se Stefano Bianchi si iscrive avra' LA STESSA PAGINA ma nomesito/stefanobianchi.html .

Quello che cambia sarà il CONTENUTO della pagina (editabile al momento dell'iscrizione ed inserita in una tabella del database).

Pertanto ho la necessità di generare una parte di questa pagina (un DIV) chiamando un programma in php.

Faccio un esempio concreto:
cliccando su I TUOI AMICI, una procedura JAVASCRIPT andra' sul file CERCAAMICI.PHP, preleva i dati dal database, li mette in una variabile ($listaamici) e li ripassa a javascript affinchè con un comando tipo:
document.write (nomevariabile) si possono vedere gli amici.
La tua soluzione (PENSO) che sia valida SOLO PER UNA PAGINA CHE SI CONOSCE, in quel caso potrei usare:
PHP:
RewriteRule ^pagina.html$ pagina.php [L]
Esiste in questo forum una cosa SIMILE riguardo le REGIONI, PROVINCIE, COMUNI che popola una SELECT DINAMICA chiamando appunto un file .php ESTERNO.

Nel mio caso non ho bisogno di una SELECT ma di un semplice DIV (poi me la vedo io). L'importante e' chiamare un file PHP da HTML, prelevare una o piu variabili e metterle nel file HTML.

Per concludere e farmi capire meglio, questa funzione la potrei usare per altre situazioni. Ad esempio in un file MAIN.HTML (che visualizza il nome utente etc), potrei richiamare questa funzione JAVASCRIPT che richiama una procedura/funzione PHP che calcola da un database un certo tipo di dato (ad esempio quanti soldi hai guadagnato finora) e scrive la variabile ($guadagnototale) nel file .html

Se non sono stato chiaro fammi sapere e comunque grazie per l'interesse.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
146
63
PR
www.borgo-italia.it
ciao
scusate se mi intrometto, ma mi sembra che tu ti stia complicando la vita.
se, te lo auguro, arrivi ad avere un numero di iscritti come face, ti ritrovi qualche milione di pagine html (una per ciascun iscritto).
in questi casi si fa una pagina php uguale per tutti che si polpola in funzione di quanto richiamato dal db
sensa contare che per richiamare un file php e, soprattutto, farlo funzionare non puoi farlo da una pagina html
 

criccroc

Utente Attivo
7 Gen 2011
44
0
6
Ciao Borgo Italia, ci mancherebbe.. non devi scusarti se ti intrometti, anzi.. TI RINGRAZIO!

Giustamente anche io ho pensato a questo tipo di problema, ovvero: 1 milione di iscritti (MAGARI) 1 milone di pagine html.

Allora proviamo a ragionare in un altro modo:
se tu ti iscrivi sul mio sito e devo crearti in modo automatico una pagina HTML PERSONALE, come dovrei fare?

Di certo non vorrei chiamare ad esempio cosi questa pagina: nomesito/pagine.php?utente=borgoitalia, la quale pagina cerca nel database il tuo nome, prende i dati e genera la pagina HTML.

devo comunque crearti una pagina HTML (o PHP anche se meno piacevole come scelta) affinchè (andiamo per ipotesi) nei tuoi biglietti da visita puoi inserire il link della tua pagina.
Un conto e' : nomesito/borgoitalia.xxx un conto e' nomesito/pagine.php?utente=borgoitalia (o cose simili).

Se risolviamo questo problema allora potrei pensare di sviluppare il tutto in PHP (cosa per me anche piu semplice).
Fatemi sapere. grasssie.
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
23
Roma
alessandro1997.netsons.org

criccroc

Utente Attivo
7 Gen 2011
44
0
6
Sto provando .htaccess e FUNZIONA (grazie ti voglio gia quasi bene ahahah)
Infatti scrivendo nomesito/mariorossi.html mi fa partire il programma php che ho deciso MANTENENDO NELLA BARRA DEGLI INDIRIZZI IL SITO DA ME DIGITATO (COSA MOOOLTO INTERESSANTE).

Ho un ultimo problema da risolvere però (PER ORA) ehehe:
Se nella stessa cartella ci sono piu file HTML (ad esempio contatti.html), dal tuo esempio anche digitando nomesito/contatti.html andro' a finire nella stessa pagina php.

Si puo' risolvere anche questo tipo di problema?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
146
63
PR
www.borgo-italia.it
ciao
forse alex dirà che dico una bestialità
chia la pagina contatti.php invece che htm, tra l'altro è più comodo così nella stessa pagina metti il form per il conytatto e l'invio dell'email
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
23
Roma
alessandro1997.netsons.org
Oppure potresti usare un altro indirizzo per i siti. Ad esempio:
Codice:
RewriteEngine On
RewriteRule ^([a-zA-Z0-9]+)/$ pagina.php?utente=$1 [L]
In questo modo, per accedere alla pagina di john, invece di http://www.example.com/john.html dovrai scrivere http://www.example.com/john/. Questo presume che tu non abbia cartelle all'interno del sito, però.
 

criccroc

Utente Attivo
7 Gen 2011
44
0
6
diciamo che questa attualmente è la cosa che mi preoccupa di meno.
Potrei spostare i vari file in un altra cartella o il programma php o ANCOR PIU SEMPLICE :
RINOMINARE TUTTI I FILE .HTML (contatti, email, info etc) in .HTM.
Cosi facendo l'indirizzo per gli utenti e' una pagina .HTML (e quindi il codice che mi ha postato Ale va benissimo).

Vediamo invece un altro problemino ehehe:
Codice:
RewriteRule ^([a-zA-Z0-9]+)/$ pagina.php?utente=$1 [L]
immaginando che mariorossi digita: nomesito/mariorossi.html il file .htaccess lo spedisce sul link appena citato. la domanda e':
chi stabilisce che mariorossi e' utente 1 e non utente 108?

sarebbe piu corretto che .. se io digito mariorossi.html, il file .htaccess riconosce quello che ho scritto, lo mette in una variabile e mi spedisce a pagina.php la variabile.
Esempio:
Codice:
RewriteRule ^([a-zA-Z0-9]+)/$ pagina.php?utente=$[B]nomeutente [/B][L]
dove nomeutente = mariorossi (o nome del sito .html)
E' possibile fare questa cosa?
se si ho risolto! :)
 

criccroc

Utente Attivo
7 Gen 2011
44
0
6
STTOOOOOPPPP .. come non detto scusate.
Non conoscendo .htaccess non sapevo che $1 altro non e' che quello che scrivi come indirizzo html (almeno cosi sembra).
quindi.. vado a provare il tuto e vi faccio sapere.
PER ORA GRAZIE INFINITEEEEEEEEE
 

criccroc

Utente Attivo
7 Gen 2011
44
0
6
FUNZIONA TUTTO ALLA MERAVIGLIA!!!
Vi ringrazio all'infinito per il supporto che mi avete dato.
Grazie Ale e grazie a Borgo Italia!
Alla prossima e buona domenica.