Interazione tra il foreach e una tabella html

  • Creatore Discussione Creatore Discussione Athene
  • Data di inizio Data di inizio

Athene

Utente Attivo
16 Mar 2012
45
0
0
twitter.com
Ciao ^^

Sono alle prime armi con la programmazione web ... ma con il vostro aiuto diventerò molto brava ;)

Oggi mi è stato assegnato un compito in cui è necessario creare una form html ( con la text area, la select,la checkbok e la radiobox) e creare uno script in PHP tale che inserisca i risultati dei parametri passati dall'utente con la form in una tabella html con due colonne ( la colonna di sinistra deve contenere il nome della variabile che ho passato tramite e nella colonna di destra il relativo risulatato ) .... Tutta questa operazione deve essere fatta con il costrutto foreach senza passare per la creazione di un database ...PLEASE HELP ME :(
 
Grazie Eliox ^_^

Ecco qui il codice della form in html :

<h1>Informazioni di riepilogo</h1>

<form name="esercizio" action="eserciziocasa1.php" method="POST">

<p> Inserisci qui il tuo nome,cognome ed email </p>

<p>Nome<input type="text" name="nome" /> </p> </br>
<p>Cognome<input type="text" name="cognome" /> </p> </br>
<p>Email<input type="text" name="email" /></p> </br>


<p>Inserisci qui un commmento </p>

<textarea rows="20" cols="50" name="commento" >



</textarea>

<p> Immetti una quantit&agrave </p>

<p>

<select name="scelta" >
<option value="10"> 10 </option>
<option value="20"> 20 </option>
<option value="30">30 </option>
</select>

</p>

<p> Scegli le modalità di pagamento : </p>

<input type="radio" name="opzioni1" value="Mastercard" > Mastercard <br>
<input type="radio" name="opzioni1" value="Postepay" > Postepay <br>
<input type="radio" name="opzioni1" value="Paypal" > PAypal <br>

</p>

<p> Dai un giudizio al sito </p>

<p>
<input type="checkbox" name="opzione" value="Buono" > Buono<br>
<input type="checkbox" name="opzione3" value="Medio" > Medio <br>
<input type="checkbox" name="opzione4" value="Scaro" > Scarso <br>
</p>

<p><input type="submit" value="Invia"/></p>

</form>

P.S.Non avendo un modello di form specifico me la sono inventata ^_^
 
Ultima modifica:
ciao
per prima cosa dai un name al pulsante di submit
PHP:
<?php
if(isset($_POST['name_del_submit'])){
	unset($_POST['name_del_submit']);
	echo "<table width=\"100%\"  border=\"0\" cellspacing=\"0\" cellpadding=\"2\">";
	foreach($_POST as $nome_campo => $valore_campo){
		echo"<tr><td>$nome_campo</td><td>$valore_campo</td></tr>";
	}
	echo "</table>";
}
?>
<!--qui il form -->

poi racchiude sempre il codice con l'apposito tag (II° riga ultime tre iconcine sulla barra di formattazione del post)
 
ciao
per prima cosa dai un name al pulsante di submit
PHP:
<?php
if(isset($_POST['name_del_submit'])){
	unset($_POST['name_del_submit']);
	echo "<table width=\"100%\"  border=\"0\" cellspacing=\"0\" cellpadding=\"2\">";
	foreach($_POST as $nome_campo => $valore_campo){
		echo"<tr><td>$nome_campo</td><td>$valore_campo</td></tr>";
	}
	echo "</table>";
}
?>
<!--qui il form -->

poi racchiude sempre il codice con l'apposito tag (II° riga ultime tre iconcine sulla barra di formattazione del post)

Grazie ^_^ .. ti posso fare qualche domanda ?? ^_^
 
ciao
"domandare è lecito, rispondere è cortesia"

ricorda però "un argomento un post", cioè se la domanda è relativa all'argomento di questo post, puoi continuare, altrimenti aprine un altro.
questo per facilitare la ricerca anche ad altri utenti interessati.

aspetto apiè fermo :eek:
 
ciao
"domandare è lecito, rispondere è cortesia"

ricorda però "un argomento un post", cioè se la domanda è relativa all'argomento di questo post, puoi continuare, altrimenti aprine un altro.
questo per facilitare la ricerca anche ad altri utenti interessati.

aspetto apiè fermo :eek:

^_^ le mie domande riguardano sempre questo post ^_^

1- Nel codice php nella riga dell'if hai giustamente messo in controllo della variabile super globale $_POST['nomesottomissione'] perchè poi successivamente hai messo unsset della stessa variabile ?? Il controllo lo posso fare anche con la funzione empty () ?? ^^

.. Pensavo di dover creare prima un array associativo che poi veniva scorto con il foreach .. forse mi sbagliavo

Forse saranno domande stupide ..scusa :(
 
ciao
in questo caso la variabile $_POST (array superglobale) è composta da
$_POST['name_del_submit'] di valore "invia"
$_POST['nome'] di valore "pinco"
$_POST['conome'] di valore "pallo"
ecc...
se non la elimino ( unset() ) prima del foreach viene ciclata anche quella e quindi stampata nella tabella
$_POST è già un array, in questo caso associativo, quindi non servirebbe trasformarlo, però se vuoi farlo, dopo l'unset, puoi scivere

PHP:
<?php
//.........
$nuovo_array=$_POST;
//....
?>
in questo caso nel foreach al posto di $_POST devi mettere $nuovo_array.

guarda però che quello che ti ho inviato è un semplice script scolastico, mancano completamente i controlli su S_POST, esempio se vuoti o contenenti porcherie, tali controlli servone a un db o invio per email
 
ciao
in questo caso la variabile $_POST (array superglobale) è composta da
$_POST['name_del_submit'] di valore "invia"
$_POST['nome'] di valore "pinco"
$_POST['conome'] di valore "pallo"
ecc...
se non la elimino ( unset() ) prima del foreach viene ciclata anche quella e quindi stampata nella tabella
$_POST è già un array, in questo caso associativo, quindi non servirebbe trasformarlo, però se vuoi farlo, dopo l'unset, puoi scivere

PHP:
<?php
//.........
$nuovo_array=$_POST;
//....
?>
in questo caso nel foreach al posto di $_POST devi mettere $nuovo_array.

guarda però che quello che ti ho inviato è un semplice script scolastico, mancano completamente i controlli su S_POST, esempio se vuoti o contenenti porcherie, tali controlli servone a un db o invio per email

Preferisco mantenerlo così però se volessi fare i controli dove andrebbero messi ?? ^^
 
ciao
io personalmente metto i controlli prima di fare qualsiasi operazione.
solo se i controlli sono tutti ok faccio eseguire quello che lo script deve fare, altrimenti riinvio o al form o altra pagina.
schematicamente:
1. leggo i valori provenienti dal form
2. ripulisco e verifico i valori
3. i valori sono OK?
SI: faccio quello che devo fare
NO: rinvio l'utente da qualche parte

poi le verifiche e la pulizia dipendono anche da quello che stai inviando e da quello che devi fare, es.
se hai un campo che deve essere obbligatoriamente riempito (scrivo passo passo)
PHP:
<?php
$nome=$_POST['nome'];//leggo dal fom
$nome=trim($nome);//tolgo gli spazi iniziale e/o finali, se l'utente ha inserito solo spazi in pratica vuoto la variabile
//verifico
if($nome != ""){
	//l'utente ha inserito qualcosa di formalmente valido
	echo "stampo o invio o salvo nel db";//faccio quello che devo
}else{
	//l'utente non ha messo nulla nel campo o solo spazi
	echo "<h1>non hai inserito il tuo nome</h1>";
	//questo è uno dei metodi per riinviare al form se nella stessa pagina
	echo "<meta http-equiv='Refresh' content='4; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
}
?>
 
ciao
io personalmente metto i controlli prima di fare qualsiasi operazione.
solo se i controlli sono tutti ok faccio eseguire quello che lo script deve fare, altrimenti riinvio o al form o altra pagina.
schematicamente:
1. leggo i valori provenienti dal form
2. ripulisco e verifico i valori
3. i valori sono OK?
SI: faccio quello che devo fare
NO: rinvio l'utente da qualche parte

poi le verifiche e la pulizia dipendono anche da quello che stai inviando e da quello che devi fare, es.
se hai un campo che deve essere obbligatoriamente riempito (scrivo passo passo)
PHP:
<?php
$nome=$_POST['nome'];//leggo dal fom
$nome=trim($nome);//tolgo gli spazi iniziale e/o finali, se l'utente ha inserito solo spazi in pratica vuoto la variabile
//verifico
if($nome != ""){
	//l'utente ha inserito qualcosa di formalmente valido
	echo "stampo o invio o salvo nel db";//faccio quello che devo
}else{
	//l'utente non ha messo nulla nel campo o solo spazi
	echo "<h1>non hai inserito il tuo nome</h1>";
	//questo è uno dei metodi per riinviare al form se nella stessa pagina
	echo "<meta http-equiv='Refresh' content='4; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
}
?>

Thanks for the advise ;)

Ti volevo chiedere se si poteva mettere la funzione exit () prima della funzione header () ?? ^^
 
ciao
exit() termina l'esecuzione di uno script, quindi tutte le istruzioni che la seguono non vengono eseguite.
l'istruzione header() deve essere messa prima di ogni output html (anche un singolo spazio), salvo modificare il flusso.
salvo che siano due rami diversi (es. di un if/else) mettere exit prima non fa eseguire l'header(), cioè puoi metterla prima, ma non ha senso
 

Discussioni simili