Newsgroup: it.comp.www.php
Titolo: Separare codice PHP da HTML/Javascript

Buongiorno! :-)
In un altro topic avevo postato il codice di un piccolo programma php su cui 
sto lavorando.
Alcuni di voi mi indicavano che è meglio tenere separato il codice PHP da 
HTML e Javascript.
Essendo gli inizi seguo gli esempi riportati nei manuali e di conseguenza 
finisco per inserire codice HTML soprattutto con l'istruzione "echo".
Qualcuno mi può segnalare qualche semplice esempio come spunto per tenere 
separato il codice?
Inoltre ho un problema quasi esclusivamente grafico.
Nel mio programma ho usato finora due bottoni:
Conferma, per controllare e registrare i dati immessi;
Cancella, per "resettare".
Questi due bottoni sono allineati nella medesima riga.
Ora ho deciso di aggiungere un terzo bottone "Indietro" per tornare alla 
pagina precedente.
Però per poter agire separatamente rispetto al Form degli altri due bottoni, 
è necessario inserire nuovi tag FORM per il nuovo bottone, ma così facendo 
non posso visualizzare il nuovo bottone sulla medesima riga degli altri due.
La mia conoscenze HTML è elementare, non conosco tutte le possibilità.
C'è modo di risolvere il problema?
Grazie
Ciao
Eugenio

 
Template.
Via php assegni il relativo valore a segnaposti (placeholder) presenti 
nella pagina html "pura".
per esempio, vedi:
http://pear.php.net/manual/en/package.html.html-template-it.intro.php
	Francesco

 C'è modo di risolvere il problema?
un bel js?
<input type="button" value="Indietro" OnClick="history.back()">

 Francesco
PEAR è installato di default con PHP su tutti i server che concedono l'uso 
di PHP?
Grazie
Ciao
Eugenio 


Ottimo.
Che voi sappiate è questo il modo migliore per separare HTML da PHP?
Non esiste l'equivalente del framework Struts o MVC di Java?
Grazie in anticipo per le eventuali risposte.
G.

 C'è modo di risolvere il problema?
Qui vai piu` sull'html e css, visto che php non c'entra piu` niente.
Puoi usare i css per rendere identici gli <input type="submit"> e l'<a>, e
metterlo sulla stessa riga, a meno che non devi passare dati da form a
quel tasto back.
In quest'ultimo caso, da PHP puoi sapere che submit e` stato premuto:
<form...>
 <input type="name">
 ...
 <input type="hidden" name="back_dato1" value="value1">
 ...
 <input type="submit" name="op" value="Inserisci">
 <input type="submit" name="op" value="Torna">
</form>
e in PHP:
<?php
 if ($_POST["op"]=="Inserisci") {
  // prendi $_POST["name"] e gli altri dati
 } else if ($_POST["op"]=="Torna") {
  // prendi $_POST["back_dato1"] e gli altri dati
 }
?>
Bye.

 di PHP?
Non avendo mai "hostato" niente non posso risponderti, comunque pear è 
un repository che puoi copiare anche a mano e includere nei tuoi script.
Per utilizzare il manager dei package (vedilo come un equivalente di 
yum/apt) devi avere l'accesso alla shell.
	Francesco

 Che voi sappiate è questo il modo migliore per separare HTML da PHP?
http://smarty.php.net/
--
rob4you

> 
http://smarty.php.net/
codeigniter.com
ciao

 
codeigniter.com
Volevo provarlo da tempo. L'ho fatto adesso: su PHP6 non va. :-)
Con tutta la gente che ancora oggi nei suoi script attiva le magic
quotes a runtime (come, immagino, cerchi di fare CI), mi sa che tra un
po' l'errore più gettonato sarà "magic_quotes_runtime is not supported
anymore" o qualcosa di simile. :o)
Se lo si cerca con google, i risultati sono 4, di cui due relativi al
sito 
php.net
, uno russo e uno tedesco. Tra un po' ci sarà anche
l'Italia. :-D
Su PHP5, invece, funziona senza problemi.
Però sbaglio oppure avevano detto che il loro intento era la leggerezza
e velocità del codice e blablabla e che quindi non usavano un template
engine perché bisognava parsare il template e questo portava via tempo e
blablabla... eppoi nel template d'esempio cosa mi ritrovo?
	<p><br />Page rendered in {elapsed_time} seconds</p>
Com'è 'sta cosa? :o)
E' vero che dicono che un "simple parser" c'è, ma dicono anche che "can
be optionally used". Vuoi vedere che l'hanno attivato di default? :-)
Saluti.
Maverick
-- 
«Che non siete più liberi di non avere una casa con letto per dormire.
 Lavorate voi - schiavi dei soldi - che non sentite la puzza della
 schiavitù!» (a Mario di Monte Mario, Roma) # 
http://libre.netsons.org/

Grazie a tutti per i suggerimenti.
Ciao

anymore" o qualcosa di simile. :o)
Scusa l'ignoranza, cosa sono i Magic Quotes?


Ho provato ad applicare il tuo metodo anche con l'uso delle classi: ottimo!
Mi piace, mi risulta anche più facile la lettura del codice.
Più avanti proverò anche con template.
Grazie
Ciao
Eugenio




 
Il metodo suggerito da Alessandro è una buona idea e facilmente 
realizzabile (anche se non mi convince il risultato finale) ma resta in 
difetto rispetto ai template che non puoi "passare" la parte grafica al 
grafico (con molta probabilità la presenza di codice php rischia di 
incasinare gli editor html).
Nell'uso delle classi, se accetti un consiglio evita di mettere elementi 
html: rischi di non riutilizzare gli oggetti.
	Francesco


Forse hai ragione, ma tieni conto che sono agli inizi con PHP. A parte 
piccole cose con HTML e ASP, sono piuttosto inesperto dell'ambiente web.
Già devo muovermi fra HTML, JS e PHP, aggiungere ancora qualcosa di nuovo in 
questo momento, mi complica un po' la vita.
Ci arriverò senz'altro. :-)
Francamente con l'editor che utilizzo (HTML-kit, il primo che ho trovato 
gratuito e che mi  è sembrato subito semplice, poi ce ne saranno sicuramente 
di migliori) non ho riscontrato per il momento nessun grave problema.
Quanto agli elementi HTML, accetto ovviamente qualsiasi consiglio, ho creato 
classi senza "insalate" di linguaggi diversi.
Questo era lo scopo di questo topic.
Grazie
Ciao
Eugenio

 html: rischi di non riutilizzare gli oggetti.
Questo e` sicuramente un ottimo consiglio.
Io, per certe cose, implemento una classe apposita che prende come input
la classe dei dati e la "tagga" con l'html e i css, quindi posso avere
Product che tiene i dati del prodotto, Product_Table che mi fa da
interfaccia col DB per prendere i vari Product, e Product_View che mi fa i
vari pezzi di HTML prendendo i dati da Product.
Bye.

 
Ti ho dato quel suggerimento proprio per un mio errore fatto alcuni anni 
fa: avevo una classe che gestiva l'autenticazione e erroreamente avevo 
implementato un metodo che mi tornava una tabella con l'info dell'utente 
collegato più i vari tasti di logout change pwd... Ho riutilizzato 
l'oggetto riscrivendo parte delle due applicazioni, con notevole 
guadagno di tempo perso :-)
	Francesco