- Home
- Categorie
- Coding e Sistemistica
- Coding
- Se premi un pulsante, apri modulo con altri form
-
Ciao nofcfro e benvenuto nel forum GT,
quale submit è premuto è specificato dal name. Non capisco quale sia il problema.
-
Forse con una immagine mi spiego meglio ^^
imageshack.us/photo/my-images/191/carcospulsanti.jpg/
Col metodo POST inserito così mi seleziona tutti i submit della pagina!
-
Personalmente avrei utilizzato un altro sistema più leggibile:
[php]
<?php
$variazione[1] = "
<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] = "
<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] = "
<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']];
[/php]
-
Mitico!!!! E' proprio lo schema che cercavo!!! Semplice, chiaro ma soprattutto efficace!!

Solo due domande però:
[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']];[/PHP]#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

-
Allora per la prima domanda, puoi usare la variabile $_POST del campo di input che aggiungi. Quindi modifichi ad esempio cosi:
[php]
$testo_base = isset($_POST['testobase']) ? $_POST['testobase'] : '';
$variazione[1] = "
mamma<form id="form1" name="form1" method="post" action="">
<input type="text" name="testobase" value="$testo_base" />
<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="text" name="testobase" value="$testo_base" />
<input type="submit" name="invio03" value="Aggiungi terza variazione" />
<input type="hidden" name="variazione" value="3">
</form>";
[/php]Per la seconda:
Ti basta modificare il campo di input nascosto rimandandolo indietro invece che avanti.
-
Scusa ancora la domanda e grazie per la pazienza..
ma non riesco a capire: aggiungo nel form la riga
[PHP]<input type="text" name="testobase" value="$testo_base" />[/PHP]
mentre
[PHP]$testo_base = isset($_POST['testobase']) ? $_POST['testobase'] : '';; [/PHP]
lo devo inserire sotto sotto il ciclo elseif ? è quest'ultima riga di codice che non capisco
-
Mi dà sempre il solito problema: si susseguono i pulsanti senza rimanere

[PHP]<?php
$testo_base = isset($_POST['testobase']) ? $_POST['testobase'] : '';$variazione[1] = "
ciao<form id="form1" name="form1" method="post" action="">
<input type="hidden" name="testobase" value="$testo_base" />
<input type="submit" 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="hidden" name="testobase" value="$testo_base" />
<input type="submit" 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="hidden" name="testobase" value="$testo_base" />
<input type="submit" value="Aggiungi quarta variazione" />
<input type="hidden" name="variazione" value="4">
</form>";
$variazione[4] = "
come<form id="form1" name="form1" method="post" action="">
<input type="hidden" name="testobase" value="$testo_base" />
<input type="submit" value="Aggiungi quinta variazione" />
<input type="hidden" name="variazione" value="5">
</form>";
$variazione[5] = "mi diverto";if(!isset($_POST['variazione']))
echo $variazione[1];
elseif(is_numeric($_POST['variazione']) && isset($variazione[$_POST['variazione']]))
echo $variazione[$_POST['variazione']];[/PHP]
-
È corretto come hai scritto nel secondo post.
Ma tu non volevi che se mostra il form 3, il form 1 e 2 non erano presenti? O ho capito il contrario di cosa volevi?
-
Ciao! Io vorrei che rimangano ogni volta quelli già cliccati!
Se mostra il form 3, il form 1 e 2 DEVONO erano presenti
-
Avevo capito male, allora devi cambiare:
[php]
elseif(is_numeric($_POST['variazione']) && isset($variazione[$_POST['variazione']]))
echo $variazione[$_POST['variazione']];
[/php]In:
[php]
elseif(is_numeric($_POST['variazione']) && isset($variazione[$_POST['variazione']]))
for($i=1; $i<=$_POST['variazione']; $i++)
echo $variazione*;
[/php]
-
Esattamente così!!

Se aggiungo un campo di troppo posso mettere un pulsante tipo "Elimina ultimo campo"? Come si può fare?
Un'ultimissima cosa, ma solo per curiosità: ogni volta che clicco su aggiungi, mi rimanda a inizio pagina, c'è un' "ancora" che mi fa rimanere all'altezza in cui ho cliccato aggiungi?Davvero GRAZIE

-
Dovresti utilizzare un database per salvare gli inserimenti effettuati altrimenti non sei in grado di salvare cosa è stato inserito.
Per eliminare l'ultimo campo devi decrementare $_POST['variazione'] nel form in cui metti torna indietro.
-
[PHP]<?php
$testo_base = isset($_POST['testobase']) ? $_POST['testobase'] : '';$variazione[1] = "
ciao<form id="form1" name="form1" method="post" action="">
<input type="hidden" name="decrementa" value="2" />
<input type="submit" value="Elimina seconda variazione" /> >
<input type="submit" 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="hidden" name="decrementa" value="3" />
<input type="submit" value="Elimina terza variazione" /> >
<input type="submit" 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="hidden" name="decrementa" value="4" />
<input type="submit" value="Elimina quarta variazione" /> >
<input type="submit" value="Aggiungi quarta variazione" />
<input type="hidden" name="variazione" value="4">
</form>";
$variazione[4] = "
come<form id="form1" name="form1" method="post" action="">
<input type="hidden" name="decrementa" value="5" />
<input type="submit" value="Elimina quinta variazione" /> >
<input type="submit" value="Aggiungi quinta variazione" />
<input type="hidden" name="variazione" value="5">
</form>";
$variazione[5] = "mi diverto";if(!isset($_POST['variazione']))
echo $variazione[1];elseif(is_numeric($_POST['variazione']) && isset($variazione[$_POST['variazione']]))
for($i=1; $i<=$_POST['variazione']; $i++)
echo $variazione*;elseif(is_numeric($_POST['decrementa']) && isset($variazione[$_POST['decrementa']]))
for($i=1; $i>=$_POST['decrementa']; $i++)
echo $variazione*;
?>[/PHP]sia se provo:
[PHP]for($i=1; $i>=$_POST['decrementa']; $i++) [/PHP]
sia
[PHP]for($i=1; $i<=$_POST['decrementa']; $i--) [/PHP]non mi toglie l'ultima aggiunta

-
Non cosi, dovresti fare una cosa del genere:
[php]
<?php
$testo_base = isset($_POST['testobase']) ? $_POST['testobase'] : '';$variazione[1] = "
ciao<form id="form1" name="form1" method="post" action="">
<input type="hidden" name="testobase" value="$testo_base" />
<input type="submit" 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="hidden" name="testobase" value="$testo_base" />
<input type="submit" 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="hidden" name="testobase" value="$testo_base" />
<input type="submit" value="Aggiungi quarta variazione" />
<input type="hidden" name="variazione" value="4">
</form>";
$variazione[4] = "
come<form id="form1" name="form1" method="post" action="">
<input type="hidden" name="testobase" value="$testo_base" />
<input type="submit" value="Aggiungi quinta variazione" />
<input type="hidden" name="variazione" value="5">
</form>";
$variazione[5] = "mi diverto";if(!isset($_POST['variazione']))
echo $variazione[1];
elseif(is_numeric($_POST['variazione']) && isset($variazione[$_POST['variazione']]))
for($i=1; $i<=$_POST['variazione']; $i++)
echo $variazione*;echo "<form id="form1" name="form1" method="post" action="">
<input type="submit" value="Torna indietro" />
<input type="hidden" name="variazione" value="".($_POST['variazione']-1)."">
</form>";
[/php]
-
Grazie DAVVERO
