Aggiornare variabili prima del post...
Aggiornare variabili prima del post... postato il 22/09/2015 15:36:18 nel forum programmazione, open source e hosting
Salve ragazzi,
sono ore che mi sto spaccando la testa su questo pezzetto di codice e, seppur credo la soluzione possa essere facile, a me proprio non riesce.
In due parole: Ho un form che setta diverse variabili. Tra queste anche la variabile $ID.
Quando il form viene inviato, vorrei che l'utente venisse reindirizzato sulla pagina: esempio.php?ID=ValoreIDSettatoDalForm
Il problema è che quando invio il form, la variabile $ID resta vuota e quindi l'indirizzo di redirect non è corretto.
Esempio del form (pagina 1)
<form action="" method="post">
<label>Name</label>
<input type="text" value="<?php if(isset($_POST['name'])){echo $_POST['name'];}?>" name="name" maxlength="15" placeholder="Name"><br/>
<input name="submit" type="submit" class="btn btn-primary" value="Update Image" />
</form>
Redirect sulla pagina del form (pagina 1)
<body onSubmit="window.open ('http://www.esempio.it/Pagina2.php?ID=<?=$id;?>')">
Sulla pagina 2 c'è un semplice:
$ID=$_GET['id'];
Postilla: Dato che il form, così come è scritto, "salva" o meglio "aggiorna" nei campi l'input dell'utente, e dato che "aggiorna" i dati del form quando si fa il submit, SE premo due volte su submit, la prima volta mi rimanda sulla pagina "a vuoto" la seconda volta mi manda, in effetti, sulla pagina con l'ID richiesto...
Qualche idea su cime risolvere?
Pensavo anche che: SE riuscissi a passare i dati del form a una seconda pagina e questa poi mi reindirizzasse alla pagina finale (che sarebbe la Pagina 3) mi starebbe bene uguale e metterei un semplic: "attenti un attimo" sulla Pagina 2...
Grazie a tutti
Pagine → 1
22/09/2015 15:50:30 e modificato da darkabe il 22/09/2015 15:53:13
Non sono sicuro di aver ben compreso il flusso logico della cosa. A leggere il primo pezzetto di codice mi sembra che il form venga inviato alla stessa pagina (quindi a sé stesso) e poi possa procedere a fare il redirect. Però mi sembra piuttosto contorta la cosa.
La cosa che vorrei capire è: dove prendi $id?
Se la possiedi già nel form non capisco dove sia il problema
Se ti viene restituita dopo l'invio del form (quindi dalla pagina che segue) allora fai fare a quella pagina il redirect, direttamente da php.
Oppure puoi inviare il form in modo asincrono, aspettare il risultato e fare il redirect nell callback. Però prima di eventualmente fare cose di sto tipo vorrei ben capire cosa devi fare
22/09/2015 15:52:42
Come prima cosa mi salta all'occhio che tu dici che il form aggiorna la variabile $id, ma io non vedo nessun <input name="id"> nel form. Quindi non è il form che la aggiorna. Magari è il codice di gestione del form, ma non l'hai postato.
Seconda cosa, dato che il tuo problema è che la variabile $id non ottiene il valore che vuoi, dovresti almeno postare la parte di codice in cui assegni un valore a quella variabile. Altrimenti possiamo solo fare supposizioni su cosa succede per davvero a $id
Ti sconsiglio di usare javascript per fare i redirect. Sarebbe meglio usare gli header HTTP, con la funzione header().
<?php
header('Location: pagina2.php?id='.$id);
?>
22/09/2015 15:58:09
Sì... è un po' contorto il ragionamento XD
Provo a spiegare "l'intento" piuttosto di quello che c'è fin'ora..
Vorrei un form che, valorizza ValoreID (inserendo il valore in un campo) e che quando inviato, mi rimanda a una prossima pagina che ha come indirizzo www.esempio.it?ID=ValoreID
È possibile?
22/09/2015 16:14:56
<form action="pagina2.php" method="get">
<label>ID:</label>
<input type="text" name="id" placeholder="ID"><br/>
<input name="submit" type="submit" class="btn btn-primary" value="Send" />
</form>
intendi così?
22/09/2015 16:30:52 e modificato da sgc carter il 22/09/2015 16:31:42
Hmmm, no, perché:
lo scopo primario è essere indirizzato alla prossima pagina che deve contenere nell'indirizzo ID. Mi spiego meglio, in maniera grafica, che magari riesco XD
Questo dovrebbe essere il "flusso" un po' più logico XD:
22/09/2015 17:07:38
Ok, quindi è quel che ti ho scritto prima xD
Si può aggiungere il target blank per farlo aprire su una nuova finestra, e si può togliere il name al submit così non verrà passato
<form action="pagina2.php" method="get" TARGET="_BLANK">
<label>ID:</label>
<input type="text" name="id" placeholder="ID"><br/>
<input type="submit" class="btn btn-primary" value="Send" />
</form>
22/09/2015 17:24:37
Grazieee... scusa ma prima non avevo capito XD
Grazie a tutti per l'aiuto :-)
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Segui Discussione Inoltra Discussione Forum Programmazione, Open Source e Hosting Elenco Forum
Articoli, Interviste e altre Risorse!
The Coven ↗
Foundation Galactic Frontier ↗
Cafuné ↗
World of the Sea Battle ↗
Tiles Survive ↗
Storie di Agarthi ↗