Newsgroup: it.comp.www.php
Titolo: Stessi dati in due form

//pagina index.php
<form method="POST" action="pag1.php">
<p>
  <input type="text" name="nome" size="20" value="salvatore"><input 
type="submit" value="Invia" name="B1"></p>
</form>
<form method="POST" action="pag2.php">
<p>
  <input type="text" name="cognome" size="20" value="paci"><input 
type="submit" value="Invia" name="B1"></p>
</form>
//Fine pagina index.php
Ho la pagina A che, attualmente, contiene un form con 58 caselle di testo.
Alcune di queste vengono riempite e, cliccando su INVIA_1 si va alla pagina 
C.
La pagina C esegue una operazione (fa vedere dei risultati parziali nella 
home page del mio sito) e reindirizza sulla pagina A.
Ho la pagina B che, attualmente, contiene un form con 58 caselle di testo.
Queste vengono riempite (TUTTE) e, cliccando su INVIA_2 si va alla pagina D.
La pagina D esegue molte operazioni e si chiude.
Premesso che le 58 caselle contengono gli stessi dati...
vorrei creare una pagina unica (invece che A e B) e poi, scegliere se 
indirizzare i dati alla pagina C o alla pagina D.
Ho provato con il codice di sopra per vedere se cliccando su uno dei due 
bottoni... si porta appresso anche i dati dell'altro form ma... purtroppo 
arrivano soltanto i dati dello stesso form (nella fattispecie "paci" o 
"salvatore")
Esiste un modo per mettere due bottoni nello stesso form per scegliere su 
quale pagina indirizzarsi?

 quale pagina indirizzarsi?
Forse:
<input type='hidden' name='modo'>
<input type='button' value='fai questo' 
onClick='javascript:document.NomeForm.modo.value=0;document.NomeForm.submit();'>
<input type='button' value='fai quello' 
onClick='javascript:document.NomeForm.modo.value=1;document.NomeForm.submit();'>
e sulla pagina che riceve gestisci 'modo'.

 quale pagina indirizzarsi?
Quello che mi viene in mente è usare un radiobutton per la scelta e 
avere comunque un unico actin, o in alternativa js sui bottoni per 
cambiare action alla form al volo.

 stessi dati vuol dire che anche le caselle di A sono sempre piene.
------------
Mi sono espresso male:
le 58 caselle sono sempre piene poiché di default contengono "00"

 ha scritto nel messaggio 
news:5csdiiF...@mid.individual.net...

-------------
Non esite *una* pagina che riceve ma *una o l'altra* 

 avere comunque un unico actin,
----------
Hai un esempio da farmi vedere?
Grazie 

 quale pagina indirizzarsi?
Non è una domanda di PHP, quindi saresti OT,
cmq se si volesse rispondere a questa domanda, i modi possono essere:
o i bottoni cambiano l'action del form prima di fare il submit con
JavaScript
oppure questo è un tipico caso in cui l'action è la stessa ma in base ad un
flag aggiunto, viene eseguita una procedura piuttosto che l'altra.
Questo flag puo' essere il valore restituito dal submit cliccato:
<input type="submit" name="send" value="B1" />
<input type="submit" name="send" value="B2" />
in base al bottone cliccato tu avrai la variabile $_POST(/_GET)['send'] che
assumera il rispettivo valore
quindi nella pagina di destinazione, quella sara' una delle prime cose da
controllare e poi includere ridirezionare o cmq fare le operazioni
relative....

 ha scritto nel messaggio 
news:1phaxtv1kzpry$.nc666h5jss86.dlg@40tude.net...

------------
Quello che dici tu riguarda una sola pagina ricevente mentre, invece, io 
vorrei poter scegliere *quale* pagina deve essere la ricevente.
Ciao 

 vorrei poter scegliere *quale* pagina deve essere la ricevente.
Lo so'
e' per questo che ti ho prima postato la possibilita' uno, che come ho
riquotato dice: "i bottoni cambiano l'action del form prima di fare il
submit con JavaScript"
Cmq non so' perche' hai questa esigenza assoluta delle 2 pagine, forse
perche' l'hai gia' fatte, e quindi sappi che puoi cmq lasciarle intonse e
funzionanti in maniera ssestanta richiamandole come incluse in una "di
mezzo"
il tuo form punta a B
B controlla il flag e include o uno o l'altro file
if($_POST....)
	include(..)
else
	include(...)
e il gioco è fatto, oppure senza pagina di mezzo, usa JS come ti dicevo...

Salvatore Paci ha scritto:

ops...
E modificare l'action del form usando il metodo qui sopra?

 E modificare l'action del form usando il metodo qui sopra?
Scusa se mi attacco al tuo messaggio, ma vedo nel testo citato cose che
voi umani... insomma, e' la complicazione delle cose semplici.
Se, come ho letto nel thread, il problema e' far seguire all'utente un
certo iter attraverso certe pagine, allora vedo due soluzioni:
1. Interazione modale. Esiste un solo script (=pagina) che gestisce la cosa,
il quale ha un certo stato interno salvato in sessione oppure nei campi
hidden del form (con opportuna protezione HMAC).
2. Interazione non modale, ovvero tanti script quanti sono i form da mostrare.
In entrambi i casi si possono mettere tutti i bottoni che si vuole senza
scomodare complicati accrocchi in JS, basta guardare quale bottone e' stato
premuto:
if( isset($_POST['bottone1']) )
	fai questo
else if( isset($_POST['bottone2']) )
	fai quello
else ecc ecc.
Una struttura dati salvata in sessione (o nei campi hidden) mantiene lo
sttato di avanzamento dell'iter e implementa gli sticky form.
Ciao,
 ___ 
/_|_\  Umberto Salsi
\/_\/  
www.icosaedro.it

 else ecc ecc.
--------------------
Il codice di cui sopra in quale pagina va?
Credo che tu stia parlando di un'unica pagina ricevente, esempio C, mentre a 
me serve indirizzare su A o su B 

 e il gioco è fatto
------------
Ma in questo caso, il form "di mezzo" dovrebbe ricevere tutti i valori e 
passarli alla pagina di destinazione. O no?



no, sono "passati" in automatico, facendo include (o family..) è come se
prendessi il codice php e lo mettessi in quel punto, ok?
Ora trovo un attimo e ti posto tutte le possibilita' che mi vengono in
mente...

 quale pagina indirizzarsi?
Con javascript, si puo' fare in diversi modi, ad es.:
[A.php]
<form action="" method="post">
....
<input type="submit" value="InviaC" name="send"
 onclick="this.form.action='C.php'" />
<input type="submit" value="InviaD" name="send"
 onclick="this.form.action='D.php'" />
</form>
[C.php]
....//quello che vuoi
[D.php]
....//quello che vuoi
Oppure solo HTML/PHP mantenedo C.php e D.php si puo' fare:
[A.php]
<form action="B.php" method="post">
....
<input type="submit" value="InviaC" name="send" />
<input type="submit" value="InviaD" name="send" />
</form>
inviando il form ad un file di mezzo B.php che č fatto ad es. cosě:
[B.php]
if($_POST['send'] == "InviaC")
	include('C.php');
elseif($_POST['send'] == "InviaD")
	include('D.php');
else
	die('error');
Capito il trucco, puoi fare a meno del file di mezzo e puoi redirigere il
form a se stesso, o ad uno dei 2 includendo l'altro nel caso di valore non
coerente...
E cosě via...

 ha scritto nel messaggio 
news:1n2pv47w7ss9u.sxurobe2j3i4$.dlg@40tude.net...

-----------
Siete stati tutti quanti gentilissimi.
Ho scelto la soluzione Javascript.
Precisamente la seguente:
<html>
<head>
        <title>Seleziona Template</title>
</head>
<body>
<script language="javascript">
function controlla(){
    for (counter = 0; counter < myForm.scelta.length; counter++){
       if (myForm.scelta[counter].checked){
        myvar = myForm.scelta[counter].value;
        document.myForm.action = myvar;
       }
    }
}
</script>
<form name="myForm" action="" onSubmit="return controlla();">
<br><input type="radio" value="pagina1.php" name="scelta" checked>1
<br><input type="radio" value="pagina2.php" name="scelta">2
<p><input type="submit" value="entra">
</form>
</body>
</html>