sostituire bottone con onchange submit

massimassi

Nuovo Utente
25 Feb 2013
5
0
0
Ciao a tutti.
Ho bisogno di fare una modifica ad un codice per permettere la sottomissione di un form attraverso il cambio di selezione di un menu a tendina.
Attualmente questo viene fatto con un bottone.
Non essendo un programmatore, ho cercato parecchio per una soluzione, ma questo caso è un pò diverso da quelli che ho trovato in rete, visto deve inviare anche il contenuto di un campo di testo oltre che al valore selezionato nel menu a tendina.
Il codice è questo:
HTML:
<form action="" method="post">
<input class="field" type="text" size="{$input_size}" maxlength="{$input_size}" value="{$prox_cap_flt}" onfocus="if(this.value=='{$prox_cap_flt}')this.value='';" name="set_cap_flt" />
<select class="field" name="set_cap_flt_dist">
<option value="">ALL</option>
{foreach from=$opts item=o}
<option {if $o.sel}selected="selected"{/if} value="{$o.dist}">{$o.dist}</option>
{/foreach}
</select>
<input type="submit" name="submit_cap_flt" value="GO" class="button" />
<input type="submit" name="clear_cap_flt" value="RESET" class="button" />
</form>

Per quello che ho capito dovrei cancellare le due righe relative ai bottoni (uno per fare il submit e l'altro del reset che vorrei levare del tutto) e inviare "submit_cap_flt" usando onchange=“submit()" dentro la riga che inizia con "<select".
Ho fatto vari esperimenti ma senza risultati, a parte il fatto che la pagina si ricarica e basta.

Qualcuno mi può aiutare?
Grazie mille.
mass
 
Ultima modifica di un moderatore:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao
HTML:
<!-- ................-->
<script type="text/jscript">
        function selectPost()
        {
            document.modulo.method = "post";
            document.modulo.action = "pallo.php";
            document.modulo.submit();
        }
</script>
<!-- ................-->
<select name="pinco" id="pinco" onchange="selectPost()" >
  <option value="aa">aa</option>
  <option value="bb">bb</option>

</select>
<!-- ................-->
così togli i submit
 

massimassi

Nuovo Utente
25 Feb 2013
5
0
0
ciao
HTML:
<!-- ................-->
<script type="text/jscript">
        function selectPost()
        {
            document.modulo.method = "post";
            document.modulo.action = "pallo.php";
            document.modulo.submit();
        }
</script>
<!-- ................-->
<select name="pinco" id="pinco" onchange="selectPost()" >
  <option value="aa">aa</option>
  <option value="bb">bb</option>

</select>
<!-- ................-->
così togli i submit

Grazie Borgo Italia per la risposta così rapida!
Però ancora non ho capito come applicarla al mio form:(

Da quel che capisco, da non programmatore, le righe di script dovrebbero definire quello che il form fa con <form action="" method="post".
In "<select" fa la selezione dal menu a tendina e poi il submit.

Qui ho un paio di problemi:
- nel mio form, quando definisce "action" non ho nessun file a cui inviare ( dovrei quindi fare così: document.modulo.action = ""; o document.form.action=""; ?)
-il mio form invia sia il valore dal menu a tendina, che il valore inserito in un campo di testo. il bottone credo lo faccia con "name="submit_cap_flt".
Come lo utilizzo nel codice che mi hai mandato?

Grazie ancora.
mass
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao
guarda questo, forse capisci meglio
ricordati che in document.modulo.... modulo è il name del form se al form dai name="sempronio" devi mettere document.sempronio...
poi se guardi (usi php?) nel document.modulo.action ho messo al posto del nome della pagina a cui inviare (da qualche parte devi inviare)
"<?php $_SERVER['PHP_SELF']; ?>" che vuol dire che l'action fa riferimento a se stessa
PHP:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Documento senza titolo</title>
<script type="text/jscript">
        function selectPost()
        {
            document.modulo.method = "post";
            document.modulo.action = "<?php $_SERVER['PHP_SELF']; ?>";
            document.modulo.submit();
        }
</script>
</head>
<body>
<?php
if(isset($_POST['pinco']) && $_POST['pinco'] !=""){
	echo $_POST['pallo']."<br />";
	echo $_POST['pinco']."<br />";
}
?>

<form name="modulo" method="post">
<input name="pallo" type="text">
<select name="pinco" id="pinco" onchange="selectPost()" >
  <option value="">seleziona</option>
  <option value="aa">aa</option>
  <option value="bb">bb</option>
</select>
</form>
</body>
</html>
 

massimassi

Nuovo Utente
25 Feb 2013
5
0
0
ciao
guarda questo, forse capisci meglio
ricordati che in document.modulo.... modulo è il name del form se al form dai name="sempronio" devi mettere document.sempronio...
poi se guardi (usi php?) nel document.modulo.action ho messo al posto del nome della pagina a cui inviare (da qualche parte devi inviare)
"<?php $_SERVER['PHP_SELF']; ?>" che vuol dire che l'action fa riferimento a se stessa
PHP:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Documento senza titolo</title>
<script type="text/jscript">
        function selectPost()
        {
            document.modulo.method = "post";
            document.modulo.action = "<?php $_SERVER['PHP_SELF']; ?>";
            document.modulo.submit();
        }
</script>
</head>
<body>
<?php
if(isset($_POST['pinco']) && $_POST['pinco'] !=""){
	echo $_POST['pallo']."<br />";
	echo $_POST['pinco']."<br />";
}
?>

<form name="modulo" method="post">
<input name="pallo" type="text">
<select name="pinco" id="pinco" onchange="selectPost()" >
  <option value="">seleziona</option>
  <option value="aa">aa</option>
  <option value="bb">bb</option>
</select>
</form>
</body>
</html>

Non sono sicuro di poter usare il php all'interno di questo template (smarty), però nei prossimi giorni provo e vedo se riesco a farlo funzionare.
Comunque, grazie di nuovo per i tuoi suggerimenti e soprattutto per la tua disponibilità!
mass
 

massimassi

Nuovo Utente
25 Feb 2013
5
0
0
ciao
se non puoi usare php o altro linguaggio dinamico a che ti serve il form?

Il form serve per filtrare dei risultati di ricerca di un cms. Devo informarmi meglio nel manuale. mmmm forse si può ma non è consigliato. Oggi sono stato in full immersion con la burocrazia, e forse anche domani, però appena metto i tuoi consigli all'opera ti aggiorno nel forum.
Perdonami se non sono preciso ma non sono un programmatore. Eviterei di mettere il naso dentro questa matrix, ma al momento devo farlo:)
 

massimassi

Nuovo Utente
25 Feb 2013
5
0
0
Alla fine per caso ho trovato il modo di farlo quasi funzionare, usando un pezzo di codice dello stesso cms.
H modificato il codice del form in questo modo:

HTML:
<form action="" method="post" id="cap">

<input class="field" type="text" size="{$input_size}" maxlength="{$input_size}" value="{$prox_cap_flt}" onfocus="if(this.value=='{$prox_cap_flt}')this.value='';" name="set_cap_flt" />

<select class="field" name="set_cap_flt_dist" onchange="$('cap').submit()">
<option value="">ALL</option>
{foreach from=$opts item=o}
<option {if $o.sel}selected="selected"{/if} value="{$o.dist}">{$o.dist}</option>
{/foreach}
</select>

<input type="hidden" name="submit_cap_flt"/>
<!--  ####commentata <input type="submit" name="clear_cap_flt" value="RESET" class="button" />-->
</form>

Ora però mi son reso conto che vorei anche avere modo di azzerare il filtro attivato da questo form. Devo trovare il modo di avere l'opzione per fare il "submit" di "clear_cap_flt".
Pensavi di fare così:
-In questa riga (<input type="hidden" name="submit_cap_flt"/>) sostituire "submit_cap_flt" con una variabile, chessò, tipo "cap_flt_reset".
-Aggiungere un'opzione alla dropdown, tipo <option value="RESET">RESET</option>
-Introdurre una routine (si chiama così?) if-else dentro onchange=".....",in modo che a "cap_flt_reset" venga attribuito il valore "submit_cap_flt" sempre, tranne quando viene selezionato "RESET"; in quel caso "cap_flt_reset" diventerà "clear_cap_flt".
-Poi fare il submit con $('cap').submit() come è ora.
Si può fare? Come?
mass
 
Ultima modifica:
Discussioni simili
Autore Titolo Forum Risposte Data
D Sostituire img con altre img Photoshop 1
P [MS Access] Sostituire un carattere in tutta la tabella MS Access 11
Shyson [MySQL] Sostituire testo in in articolo MySQL 0
elpirata [MySQL] Sostituire valori campi con dati casuali MySQL 4
P [Photoshop] Sostituire i colori in modo preciso Photoshop 0
C [PHP] SOSTITUIRE VALORI DENTRO STRINGA PHP 0
elpirata [PHP] Sostituire if ed elseif con operatore ternario switch PHP 9
L [PHP] Sostituire link da stringa PHP 3
ecosito [WORDPRESS] Sostituire la cartella d'installazione? WordPress 2
S [Javascript] Sostituire elemento HTML preso randomicamente dentro array Javascript 1
M Sostituire le funzioni mysql con mysqli, ma quali? PHP 4
S Sostituire link con button. PHP 1
M sostituire parte di URL con espressioni regolari PHP PHP 8
Marco_88 Come sostituire valori in un campo per più oggetti. MySQL 2
JackIlPazzo Sostituire una riga specifica in un file di testo senza cancellare il rimanente PHP 13
A sostituire "onload" nel tag <img> con Js Javascript 17
max_400 Sostituire un div con un altro il comando innerHTML è bloccato Javascript 0
C Sostituire virgola con punto form PHP 2
P sostituire form con jquery jQuery 0
F sostituire un'immagine con jquery jQuery 2
felino Temperatura processore: soglia massima per sostituire pasta termica Hardware 2
Trapano sostituire iframe PHP 5
C Sostituire molte righe di codice PHP 2
L sostituire un carattere in una stringa acquisita da input jQuery 1
S sostituire codice html in molti file HTML e CSS 1
N [RISOLTO] Sostituire Input con a href PHP 10
Shyson Sostituire onclick Javascript 2
P Sostituire immagine in una cartella. PHP 6
S Sostituire immagini in sequenza Javascript 4
C In una textarea sostituire il carattere \n in <br/> Javascript 14
C Sostituire il comando body onload Javascript 30
Erzsébeth Sostituire richiamo immagini PHP 4
IImanuII Php sostituire un iframe PHP 4
zighy Sostituire dati database PHP 7
M sostituire un valore con un altro corrispondente PHP 11
A Sostituire una sottostringa a una stringa data PHP 11
L Sostituire file_get_contents ? PHP 10
N leggere/sostituire/restituire file txt PHP 1
Z Onclick : sostituire odiosi "button" con semplici Links Javascript 13
U Sostituire le funzionalità di un pulsante con un testo HTML e CSS 0
S E' possibile sostituire un dominio con un altro? Domini 4
webbetto Sostituire un campo vuoto Database 4
K Bottone torna indietro Javascript 3
Cosina Creare bottone delete in form upload PHP 5
Cosina Creare bottone delete in form upload PHP 1
G Modifica immagine di sfondo attraverso un bottone PHP 18
S Disattivare bottone Javascript 0
S non funzionano alcuni effetti (bottone futuristico creato con css) HTML e CSS 1
G Aiuto HTML, collegamento con un bottone a una <div> di un' altra pagna HTML e CSS 5
U PHP bottone per invio mail o ritorno al form PHP 15

Discussioni simili