[PHP] Auto Submit form con dati

  • Creatore Discussione Creatore Discussione bubino8
  • Data di inizio Data di inizio

bubino8

Utente Attivo
28 Apr 2017
360
20
28
32
BZ
Buongiorno,
Sto cercando una soluzione per inviare un form "select" in automatico.
Il problema si pone quanto in base alla select option deve essere un URL differente mentre il campo type="hidden" name="idcliente" deve essere inviato sempre.

es.:
PHP:
<?php
$idcliente = "Cliente332";
?>
<form action="" name="aggiungi" onChange="top.location.href=this.options[this.selectedIndex].value;">
    <select id="page" name="p">
        <option value="-1">Aggiungi</option>
        <option value="add1">Agg. 1</option>
        <option value="add2">Agg. 2</option>
        <option value="add3">Agg. 3</option>
    </select>

    <input type="hidden" name="idcliente" value="<?php echo $idcliente; ?>">
</form>

In questo modo mi porta alla pagina scelta ma mostra idcliente in GET e non POST


Grazie in anticipo
 
Ciao, metti l'evento onchange sulla select e toglilo dal form. Aggiungi method="post" al tag form
HTML:
<form action="" name="aggiungi" method="post">
<select id="page" name="p" onchange="this.form.submit()">
 
Intanto grazie per aver risposta.
Con le modifiche consigliatemi non funziona.
Io ho bisogno che oltre a inviare idcliente debba mandare alla pagina che che ho scelto in <option>
PHP:
<form action="" name="aggiungi" method="post">
    <select id="page" name="p" onchange="this.form.submit()">
        <option value="-1">Aggiungi</option>
        <option value="addserver">Agg. 1</option>
        <option value="addcanale">Agg. 2</option>
        <option value="addstato">Agg. 3</option>
    </select>

    <input type="hidden" name="idcliente" value="<?php echo $idcliente; ?>">
</form>
URL delle mie pagine:
http://sito.com/home.php?p=addserver
http://sito.com/home.php?p=addcanale
http://sito.com/home.php?p=addstato

e che passi con

$_POST['idcliente']


Grazie
 
Vuoi mandare la selezione della select come parametro get e idcliente come post?
Potresti usare js, che cambiando la selezione ti cambia l'azione del form in "home.php?p=addserver", "home.php?p=addcanale" o "home.php?p=addstato".

Oppure potresti salvare l'idcliente in un cookie:
Per impostarlo:
PHP:
setcookie("idcliente", $idcliente);

Per richiamarlo dopo aver inviato il form:
PHP:
$idcliente = $_COOKIE['idcliente'];
 
io avevo capito che volevi tutto in post
In questo modo mi porta alla pagina scelta ma mostra idcliente in GET e non POST
la prima soluzione di livellacri può risolvere il problema facilmete
 
Ultima modifica:
grazie per le risposte.
Si diciamo che non mi so spiegare molto bene in queste cose.
Per i Cookie non ci avevo pensato quindi è sufficiente metterli all'interno del FORM?
PHP:
<form action="" name="aggiungi" method="post">
    <select id="page" name="p" onchange="this.form.submit()">
        <option value="-1">Aggiungi</option>
        <option value="addserver">Agg. 1</option>
        <option value="addcanale">Agg. 2</option>
        <option value="addstato">Agg. 3</option>
    </select>
    setcookie("idcliente", $idcliente);
</form>

Una volta recuperati i cookie con "idcliente" posso canellarli subito giusto?
Es.:
PHP:
$idcliente = $_COOKIE['idcliente'];
setcookie("idcliente", null);

Siccome questo è di un solo cliente e lavoro in molte pagine con "idcliente" non vorrei mandasse in conflitto qualcosa.

Grazie
 
Puoi fare cosi
HTML:
<select id="page" name="p" onchange="this.form.action = '?p=' + this.options[this.selectedIndex].value;this.form.submit()">
ma ha poco senso inviare il parametro p sia in GET che in POST
 
  • Like
Reactions: bubino8
sarà una cosa poco sensata ma non saprei in cha altro modo mandare parametri GET per url e POST per idcliente dallo stesso form.
Grazie ancora sei stato utilissimo.
 
  • Like
Reactions: criric

Discussioni simili