Se clicco sul pulsante, aprimi un form

nofcfro

Utente Attivo
27 Mag 2012
72
0
6
Salve,
scusate per il titolo ma è non so bene come definirlo. :book:
Spiego: nella pagina ho la necessità che cliccando su un pulsante submit tipo "Aggiungi", mi dia sotto un altro form da riempire.
Se nel caso però aggiungo un form di troppo, vorrei avere un pulsante submit tipo "Reset" che mi elimini il form precedentemente aggiunto
Io ho pensato di fare rudimentalmente un If con un include, ma se possibile eviterei l'include! ^^

PHP:
// form coi pulsanti 'Aggiungi' e 'Resetta'
<form id="form1" name="form1" method="post" action="">
  <input type="submit" name="submit" id="submit" value="submit" />
  <input type="submit" name="reset" id="reset" value="reset" />
</form>

<?
if(isset($_POST['submit']))
{
		include("prov02.php");
}

if(isset($_POST['reset']))
{
		??????("prov02.php");
}

Grazie anticipatamente
 

nofcfro

Utente Attivo
27 Mag 2012
72
0
6
Grazie per la soluzione ma il java volevo evitarlo il più possibile, cercando per la rete ho trovato qualcosa che può fare al caso mio. Ora sto cercando di modificarlo in maniera che cliccando su aggiungi venga fuori un modulo con molti form.
Esempio: Clicco "Aggiungi" -> sotto compare un modulo con tre form testo con 'nome', 'cognome', 'indirizzo'. Poi parte la query INSERT INTO (già configurata)
Posto il codice, se qualcuno vuole darmi una mano, oppure qualora riuscissi da solo posto il codice finale!

PHP:
<form name="miofofm" method="post" action="">
<input type="text" name="articoli" />
<input type="submit" value="Aggiungi" /><br />

<?php
#Se è stato premuto il pulsante per inviare dei dati esegue queste operazioni
if($_POST){
   # se erano già presenti degli altri articoli, per cui esiste l'array $_POST['articolo']
   # fa in modo di stampare tutti i valori di questo array
   # altrimenti non fa niente, metti che si tratta del primo articolo inserito l'array $_POST['articolo'] non esiste
   if(isset($_POST['articolo']))
   # passo tutti i valori dell'array e li stampo creando il codice html per il i tag di input di tipo checkbok
   for ($i=0; $i<count($_POST['articolo']); $i++) {
       echo "<input type='checkbox' name='articolo[]' value=\"{$_POST['articolo'][$i]}\" checked=\"checked\" /> ".$_POST['articolo'][$i]."<br />\n";
   }
   # dato che l'utente ha sicuramente premuto aggiungi allora bisognerà aggiungere l'articolo che ha inserito nel campo text
   # che è salvato nella variabile $_POST['articoli']
   echo "<input type='checkbox' name='articolo[]' value=\"".$_POST['articoli']."\" checked=\"checked\" /> ".$_POST['articoli']." aggiunto"; # per il campo testo
}
?>
</form>
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Ottimizzato:
PHP:
<form name="miofofm" method="post" action="">
    <input type="text" name="articoli" />
    <input type="submit" value="Aggiungi" />

    <br />

    <?php
    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
        if (isset($_POST['articolo'])) {
            foreach ($_POST['articolo'] as $articolo) {
                echo sprintf('<input type="checkbox" name="articolo[]" value="%s" checked="checked" /> %1$s<br />', $articolo);
            }
           
            echo sprintf('<input type="checkbox" name="articolo[]" value="%s" checked="checked" /> %1$s aggiunto<br />', $_POST['articoli']);
        }
    }
    ?>
</form>
 

nofcfro

Utente Attivo
27 Mag 2012
72
0
6
Ciao Alessandro, innanzitutto grazie per la risposta, tuttavia quando inserisco il tuo codice non ottengo ciò che volevo!
Io stavo cercando -con PHP- di avere questa situazione: solo cliccando sul tasto 'Aggiungi' sotto deve comparire un modulo con tre form.
E possibilmente avere un altro pulsante che mi elimina il modulo appena aggiunto qualora non lo volessi più :)
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Allora, stai facendo un po' di confusione. Un form è un insieme di campi input:
HTML:
<form method="post" action="submit.php">
    <input type="text" name="campo1">
    <!-- ... -->

    <button type="submit">Invia</button>
</form>
Quindi, che significa "un modulo con tre form"?
 

nofcfro

Utente Attivo
27 Mag 2012
72
0
6
Forse mi sono spiegato male io. Con Dreamweaver inserisco un modulo, in questo modulo inserisco un pulsante di 'submit', al cliccare di questo pulsante 'submit' devo trovare un codice php che mi permetta di aprire sempre nella stessa pagina un nuovo modulo dove posso inserire altri campi di testo e checkbox.

Pulsante 'submit' -> se cliccato mi apre (una riga sotto, nella stessa pagina) un nuovo modulo con altre opzioni.

Spero che così sono stato più chiaro :)
 

nofcfro

Utente Attivo
27 Mag 2012
72
0
6
Ok, parzialmente risolto! Praticamente creo la mia variabile $1 e ci metto dentro tutto il testo che mi serve, che è semplice html ma con le \ messe secondo il criterio logico che vedete, poi chiamo il ciclo IF e gli dico che se non è settato il pulsante 'submit' allora stampami la mia variabile $1. Quindi finché non premo il tasto non accade nulla, quando lo premo mi stampa la variabile!
Ora il problema è nell'intestazione: <FORM METHOD=\"POST\" ACTION=\"$PHP_SELF\">: a me servono più pulsanti per stampare più variabili. Ora la stringa dell'intestazione si riferisce a tutti i POST, invece a me serve solamente il POST del pulsante 'submit'! Come faccio?? ( questa domanda è più semplice! ^^ )

PHP:
<?
			$1="<FORM METHOD=\"POST\" ACTION=\"$PHP_SELF\">
 
            				<td>Nome<br />
              				<label for=\"nome\"></label>
             			    <input name=\"nome\" type=\"text\" id=\"CodRip\" maxlength=\"8\" /></td>

			if(isset($_POST['submit']))
			{
			echo $1;
			} 


?>

<form id="form1" name="form1" method="post" action=""> 
  <input type="submit" name="submit" id="submit" value="submit" /> 
</form>
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
piccole osservazioni
non puoi usare la variabile $1, in php i nomi di variabile NON possono iniziare con un numero, se lo provi ti risulta
Parse error: syntax error, unexpected T_LNUMBER, expecting T_VARIABLE or '$' in C:\AppServ\www\corso\0_protezione\_0provaStupida.php on line xy
non usare gli short tag <? ma <?php
scrivi i tag html minuscoli (funzia lo stesso ma non è corretto)
al posto di $PHP_SELF è meglio usare $_SERVER['PHP_SELF'] , per sicurezza meglio con htmlspecialchars($_SERVER['PHP_SELF'] )
poi
il secondo form (quello stampato con la variabile) non è chiuso e come fai a trasmettere i suoi campi se non usi un altro pulsante di submit(con nome diverso dal precedente) ?
secondo me inoltre se si usano più form nella stessa pagina è meglio dare dei nome diversi a ciascuno
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
dimenticavo:
ho guardato il link e devo dirti che mi sembra obsoleto. risale alla versione 3 e precedenti di php quando le variabile provenienti dal form html veniva lette direttamente.
per veri motivi ora non si può più (salvo modificare le direttive di php).
anche le successive $HTTP_POST_VARS[] o get sono diventate obsolete, oggi si deve usare $_POST o get
 

nofcfro

Utente Attivo
27 Mag 2012
72
0
6
Hai perfettamente ragione, sia la variabile che il tag sono errore mio, nel post precedente avevo riscritto il codice eliminando tutte le cose personali che ho sul codice che devo inserire sul mio sito e facendo taglia e cuci ho fatto questi erroracci che hai giustamente sottolineato :)
Ora se premo il primo pulsante di submit "invio02" mi appare correttamente il nuovo modulo con il form "Nome" e il pulsante submit "invio03". :fonzie:
Il problema è che il metodo POST prende ogni pulsante submit, invece io dovrei specificare di volta in volta quale pulsante il post deve ricevere! Teoricamente nel campo ACTION dovrei specificare
PHP:
 $_POST['invio02']
ma ciò non è possibile :(


PHP:
<?php
// al premere del pulsante submit name=invio02 mi apre questo nuovo form con questo codice:

			$variazione02="<FORM METHOD=\"POST\" ACTION=\"???????????\">
        				<!-- Apro la variazione 02 -->
							<tr>
						<!-- Colore prima tabella: 02 -->      
	     					<td><p>01<br />
	         				</p>
				    		<table width=\"100%\" border=\"0\">
   					        <tr bgcolor=\"#CC66FF\">
            				<td>Nome<br />
              				<label for=\"nome\"></label>
             			    <input name=\"nome\" type=\"text\" id=\"nome\" maxlength=\"8\" />
							</td>
           					</tr></table></tr>
						<!-- Chiudo la variazione 02 -->
						<!-- Pulsante che abilita la variazione 03 -->
						<form id=\"form1\" name=\"form1\" method=\"post\" action=\"\"> 
  						<input type=\"submit\" name=\"invio03\" value=\"Aggiungi terza variazione\" /> 
						</form>"
												;
// ciclo if: se premo il pulsante di submit aggiunge il form sopra!						
			if(isset($_POST['invio02']))
			{
			echo $variazione02;
			} 

// variazione 03

			$variazione03="<...>";
?>

<!-- FORM INIZIALE -->
<form id="form1" name="form1" method="post" action=""> 
  <input type="submit" name="invio02" value="Aggiungi seconda variazione" /> 
</form>
 

nofcfro

Utente Attivo
27 Mag 2012
72
0
6
Questa è l'empasse:

PHP:
<form id="form1" name="form1" method="post" action=""> 
  <input type="submit" name="invio02" value="Aggiungi seconda variazione" /> 
</form> 
<?
// variazione 02

			$variazione02="<FORM METHOD=\"POST\" ACTION=\"\">
        				22222
						<!-- Pulsante che abilita la variazione 03 -->
						<form id=\"form1\" name=\"form1\" method=\"post\" action=\"\"> 
  						<input type=\"submit\" name=\"invio03\" value=\"Aggiungi terza variazione\" /> 
						</form>"						;
						
			if(isset($_POST['invio02']))
			{
			echo $variazione02;
			} 

// variazione 03

			$variazione03="<FORM METHOD=\"POST\" ACTION=\"\">
        				33333
						<!-- Pulsante che abilita la variazione 04 -->
						<form id=\"form1\" name=\"form1\" method=\"post\" action=\"\"> 
  						<input type=\"submit\" name=\"invio04\" value=\"Aggiungi quarta variazione\" /> 
						</form>"						;
						
			if(isset($_POST['invio03']))
			{
			echo $variazione03;
			} 

// variazione 04

			$variazione04="<FORM METHOD=\"POST\" ACTION=\"\">
        				44444
						<!-- Chiudo la variazione 04 -->
						<!-- Pulsante che abilita la variazione 05 -->
						<form id=\"form1\" name=\"form1\" method=\"post\" action=\"\"> 
  						<input type=\"submit\" name=\"invio05\" value=\"Aggiungi quinta variazione\" /> 
						</form>"						;
						
			if(isset($_POST['invio04']))
			{
			echo $variazione04;
			} 

// variazione 05

			$variazione05="<FORM METHOD=\"POST\" ACTION=\"\">
        				55555
						<!-- Pulsante che abilita la variazione 06 -->
						<form id=\"form1\" name=\"form1\" method=\"post\" action=\"\"> 
  						<input type=\"submit\" name=\"invio06\" value=\"Aggiungi sesta variazione\" /> 
						</form>"						;
						
			if(isset($_POST['invio05']))
			{
			echo $variazione05;
			} 

// variazione 06

			$variazione06="<FORM METHOD=\"POST\" ACTION=\"\">
        				666666
						<!-- Pulsante che abilita la variazione 07 -->
						<form id=\"form1\" name=\"form1\" method=\"post\" action=\"\"> 
  						<input type=\"submit\" name=\"invio07\" value=\"Aggiungi settima variazione\" /> 
						</form>"						;
						
			if(isset($_POST['invio06']))
			{
			echo $variazione06;
			} 

// variazione 07

			$variazione07="<FORM METHOD=\"POST\" ACTION=\"\">
        				77777
						<!-- Pulsante che abilita la variazione 08 -->
						<form id=\"form1\" name=\"form1\" method=\"post\" action=\"\"> 
  						<input type=\"submit\" name=\"invio08\" value=\"Aggiungi ottava variazione\" /> 
						</form>"						;
						
			if(isset($_POST['invio07']))
			{
			echo $variazione07;
			} 

// variazione 08

			$variazione08="<FORM METHOD=\"POST\" ACTION=\"\">
        				8888
						<!-- Chiudo la variazione 08 -->";
						
			if(isset($_POST['invio08']))
			{
			echo $variazione08;
			} 


?>
Invece dovrebbe aggiungere la variazione 2, poi se volessi aggiungere la variazione 3 clicco sul pulsante "aggiungi variazione" MA la seconda variazione deve rimanere!!! E così via. Il dubbio è come settare il POST in maniera personalizzata? su ACTION cosa ci metto??? :confused:
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
mi è venuta quest'idea, però non l'ho testat e quindi non so se funzia
prova e sappimi dire

PHP:
<?php 
// al premere del pulsante submit name=invio mi apre questo nuovo form con questo codice: 
$variazione02="<form method=\"post\" action=\"$destinazione\"> 
                        <!-- Apro la variazione $valore --> 
                            <tr> 
                        <!-- Colore prima tabella: $valore -->       
                             <td><p>01<br /> 
                             </p> 
                            <table width=\"100%\" border=\"0\"> 
                               <tr bgcolor=\"$colore\"> 
                            <td>Nome<br /> 
                              <label for=\"nome\"></label> 
                             <input name=\"nome\" type=\"text\" id=\"nome\" maxlength=\"8\" /> 
                            </td> 
                               </tr></table></tr> 
                        <!-- Chiudo la variazione 02 --> 
                        <!-- Pulsante che abilita la variazione 03 --> 
                        <form id=\"form1\" name=\"form1\" method=\"post\" action=\"\">  
                          <input type=\"submit\" name=\"invio\" value=\"$valore\" />  
                        </form>" 
; 
// ciclo if: se premo il pulsante di submit aggiunge il form sopra!                         
if(isset($_POST['invio'])){ 
	$valore=(int)$_POST['invio']+1;//in pratica modifico le variabili del secondo form
	switch($vari){
		case 3:$destinazione="pinco.php";$colore="#CC66FF";
		break;
		case 4:$destinazione="pallo.php";$colore="#0000FF";
		break;
		case 5:$destinazione="senpronio.php";$colore="#FF00000";
		break;
		default:$destinazione=$_SERVER['PHP_SELF'];$colore="#FFFFFF";
		break;
	}
	echo $variazione02; 
}  
?> 

<!-- FORM INIZIALE --> 
<form id="form1" name="form1" method="post" action="">  
  <input type="submit" name="invio" value="2" />  
</form>
 

nofcfro

Utente Attivo
27 Mag 2012
72
0
6
Ti spiego, in questa pagina che ho postato vengono creati più form i cui dati dovranno essere inseriti in un database (con una query INSERT INTO), quindi mi servirebbe avere tutto il codice in un'unica pagina :(
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
sempre che funzioni come principio (devi provarlo) il sistema dovrebbe permetterti di valorizzare le variabili in funzuine del post (2, 3,....)
nell'esempio dovrebbe salvare in tabelle diverse (o uppare)

PHP:
<?php  
// al premere del pulsante submit name=invio mi apre questo nuovo form con questo codice:  
$variazione02="<form method=\"post\" action=\"$_SERVER['PHP_SELF']\"> eccc.....";

//poi nello switch togli destinazione e se ti serve metti la query
if(isset($_POST['invio'])){  
    $valore=(int)$_POST['invio']+1;//in pratica modifico le variabili del secondo form 
    switch($vari){ 
        case 3: $colore="#CC66FF"; $query ="INSERT INTO tabella_3(ecc.....";
        break; 
        case 4:$colore="#0000FF";  $query ="INSERT INTO tabella_4(ecc.....";
        break; 
        case 5:$colore="#FF00000";  $query ="INSERT INTO tabella_5(ecc.....";
        break; 
        default:$colore="#FFFFFF";  $query ="INSERT INTO tabella_2(ecc.....";
        break; 
    }
	$ris=mysql_query($query);
    echo $variazione02;  
}
//ecc.... 
?>
 

nofcfro

Utente Attivo
27 Mag 2012
72
0
6
PHP:
$variazione02="<form method=\"post\" action=\"$_SERVER['PHP_SELF']\"> eccc.....";
Dreamweaver dà errore di sintassi se inserisco in action $_SERVER['PHP_SELF'] :(

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/mhd-01/www.carcos.eu/htdocs/11.php on line 5
 
Ultima modifica:

nofcfro

Utente Attivo
27 Mag 2012
72
0
6
Forse un'immagine vale di più di molte parole ^^
E' così che vorrei realizzare il form! :)
carcos_pulsanti.jpg
 

nofcfro

Utente Attivo
27 Mag 2012
72
0
6
Passi avanti, così la struttura quasi funziona!

PHP:
<?php 
$variazione[1] = " 
ciao<form id=\"form1\" name=\"form1\" method=\"post\" action=\"\"> 
<input type=\"submit\" name=\"invio03\" value=\"Aggiungi seconda variazione\" /> 
<input type=\"hidden\" name=\"variazione\" value=\"2\"> 
</form>"; 

$variazione[2] = " 
mamma<form id=\"form1\" name=\"form1\" method=\"post\" action=\"\"> 
<input type=\"submit\" name=\"invio03\" value=\"Aggiungi terza variazione\" /> 
<input type=\"hidden\" name=\"variazione\" value=\"3\"> 
</form>"; 

$variazione[3] = " 
guarda<form id=\"form1\" name=\"form1\" method=\"post\" action=\"\"> 
<input type=\"submit\" name=\"invio03\" value=\"Aggiungi quarta variazione\" /> 
<input type=\"hidden\" name=\"variazione\" value=\"4\"> 
</form>"; 

if(!isset($_POST['variazione'])) 
    echo $variazione[1]; 
elseif(is_numeric($_POST['variazione']) && isset($variazione[$_POST['variazione']])) 
    echo $variazione[$_POST['variazione']];
?>

#1 Aggiungendo ad ogni variazione le parole 'ciao', 'mamma', 'guarda', al premere del pulsante scompare la prima parola per la seconda e al nuovo premere scompare la seconda parola per la terza. Come posso fare in modo che ogni volta che premo il pulsante rimane anche la parola precedente?

#2 Come posso creare un pulsante invece di "reset", cioè che mi tolga solo l'ultima aggiunta fatta? Es. ho composto 'ciao', 'mamma',, 'guarda' e voglio togliere solo 'guarda', lasciando così solamente le prime due parole?

Grazie ancora :)
 
Discussioni simili
Autore Titolo Forum Risposte Data
I clicco sul nome utente e gli invio una mail PHP 5
B Se clicco refresh il form va in automatico PHP 5
felino [Windows 10] Scompare icone, file e collegamenti sul desktop Windows e Software 0
E Benvenuti sul Nuovo Sito: Explore Como Lake! Presenta il tuo Sito 0
M Creare traccia di download file sul server HTML e CSS 2
D protezione cartelle: blocco visualizzazione/scaricamento contenuto, ma abilitazione utilizzo dati da parte di file .php presenti sul sito Web Server 1
D Visualizzazione pagina basata sul valore di un campo del database PHP 2
S Controllo appuntamenti disponibili sul db PHP 5
G (CERCO) pubblicita sul mio IG Vendere e Acquistare pubblicita' online 3
F domanda sul link juice SEO e Posizionamento 2
K La pagina index, si apre sul form e non al top page Javascript 0
R [REGALO] 100+ Ebook sul Business online Annunci servizi di Social Media Marketing 0
R Impianto che non si vede sul cell IP Cam e Videosorveglianza 6
G Inserire "Leggi il resto dell'articolo" con link al post sul sito preso via RSS Email Marketing 0
M [PHP] Logica esatta sul mostrare contenuto se inattivo con Codeigniter PHP 2
T Nuovo sul Forum, Mi presento Presentati al Forum 1
B Nuova sul forum - Mi presento Presentati al Forum 2
B Nuovo sul forum - mi presento Presentati al Forum 1
F Shop Account facebook / instagram / Visite reali sul sito web e molto altro! Annunci servizi di Social Media Marketing 0
L Trasferimento dei file OLM Mac in formato PST sul sistema Mac Mac e Software 1
D Vendo pubblicità sul mio account Instagram da 12.5 k follower Vendere e Acquistare pubblicita' online 3
L [HTML] Caricato sito sul server, ma non funziona con tutti i browser HTML e CSS 2
L Caricato sito sul server, ma non funziona con tutti i browser Presentati al Forum 1
A [Visual Basic] Consiglio sul datagridview Visual Basic 0
trattorino [Javascript] effetto carino sul click mi aiutate? Javascript 1
A [VENDO] pubblicità sul mio account Instagram con 250k followers Vendere e Acquistare pubblicita' online 2
syndr0m3 [PHP] Rinominare file sul server ogni tot minuti PHP 8
L Fascia sul bottom jQuery 1
M [PHP] Cerca file in una specifica cartella sul sito PHP 0
filograndipad2 Esempi chiari e completi sul funzionamento degli eventi in Java Java 1
Koboshi [Javascript] Carico sul server e non funziona più. Javascript 4
I [HTML/CSS] Consigli sul mio primo sito HTML e CSS 9
S Domande sul posizionamento SEO SEO e Posizionamento 2
Instagramsocialmedia FATE ATTENZIONE furti di identità anche qui sul forum e tramite email Annunci servizi di Social Media Marketing 0
W [PHP] gestire una richiesta curl sul server PHP 0
Licantropo Chiarimenti sul terzo livello Domini 1
C Python sul sito web Programmazione 0
F [PHP] Organizzare le directories sul server per un'applicazione web PHP 9
marino51 [Risolto]videochat di messenger ha smesso di funzionare sul telefonino Smartphone e tablet 1
C [HTML] Inserimento feed/rss di Mr.Webmaster sul proprio sito HTML e CSS 1
S [PHP] Copiare una cartella sul sever PHP 2
I Cerco pagina facebook improntata sul turismo Annunci servizi di Social Media Marketing 1
Kolop [HTML] Bordi arrotondati sul telefono HTML e CSS 9
S recuperare il valore di un campo input cliccando sul relativo dato di una tabella jQuery 0
readme Info sul SEO SEO e Posizionamento 7
andreas88 Normative sul blog ricette e guadagnarci su Leggi, Normative e Fisco 6
greven [WordPress] [CSS3] Inserire Hover Effect sul menù WordPress 10
P [PHP] mancaza di permessi sul nas (synology) PHP 0
felino [Windows Vista] Icone sul desktop sparite... Windows e Software 2
O Parere sul mio sito Presenta il tuo Sito 2

Discussioni simili