webForumDet fria alternativet

Hur får man en dropdown i ett formulär att exekveras?

HTML & CSS

13 svar · 449 visningar · startad av lillebror

Medlem sedan apr. 20041 597 inlägg
Frågan#1

Jag håller på och utvecklar ett meddelandesystem. I detta system skall det finnas ett antal olika mappar för sortering av inkommande och skickade meddelande.

I den bifogade bildfilen kan man se ett formulär som enbart består av en select där ex. inkorg, skickat och skräp kommer att visas.

Nu till själva frågan. När jag väljer något av dessa tre vill jag få formuläret att omedelbart anropa <form action="fil.php" method="post"> så att rätt meddelande kan hämtas till vald mapp. Jag har i nuläget inte fått det att fungera.

Någon som har förslag på hur detta kan lösas? :)

Trevlig helg!

form_mailfolder.jpg
Medlem sedan aug. 20003 575 inlägg
#2

Sätt ett namn på formuläret.

Så får du skriva ett javascript:

<select onchange="javascript:document.formnamn.submit();">
Medlem sedan apr. 20041 597 inlägg
#3

Så här ser koden ut:

<td align="right">
<form action="inc/include.function.mail.php" method="post">
Välj mapp: 
<!--<select type="submit" name="mailfolder">-->
<select onchange="java script:document.mailfolder.submit();">
<option value="1">Inkorg</option>
<option value="2">Skickat</option>
<option value="2">Skräpkorg</option>
</select>
</form>
</td>

Så här ser koden ut i den mottagande filen:

if(trim($_POST['mailfolder']) == '??????') {

KOD KOD KOD KOD 
}

Kommentar till den mottagande koden. I tidigare formulär har jag i submit-knappen haft en value satt som jag kunnat stämma av mot i en if-sats i den mottagande koden för dirigera händelsen till rätt kodstycke. Hur gör jag nu när jag inte har något value satt?

Medlem sedan juni 200032 967 inlägg
#4
<form action="inc/include.function.mail.php" method="post" [b]name="choosemailfolder"[/b]>
<select onchange="document.[b]choosemailfolder[/b].submit();" [b]name="mailfolder"[/b]>
Medlem sedan apr. 20041 597 inlägg
#5

Javascriptet fungerar mycket bra. Tack!

Sedan finns det finns väl inga hinder att man i formuläret skickar tillbaka informationen till listmessage.php igen med variabeln mailfolder?

Denna variabel hade jag tänkt att mata in i funktionen:

$RSobj = listMessages($_SESSION["uid"], $_POST['mailfolder']);

Så att rätt meddelanden slutligen hämtas...

Skulle det fungera?

Medlem sedan juni 200032 967 inlägg
#6

Sedan finns det finns väl inga hinder att man i formuläret skickar tillbaka informationen till listmessage.php igen med variabeln mailfolder?

Nä, det borde inte vara något problem. Men om PHP kan jag intet, så jag tänker inte ens fundera på din sista fråga. ;)

mvh

Medlem sedan juni 2004533 inlägg
#7

Du behöver inte ens sätta något namn på formuläret. Select-listan har en referens till sitt formulär:

<select onchange="this.form.submit();" name="mailfolder">
Medlem sedan mars 20041 505 inlägg
#8

Enligt mig är det mer användarvänligt med en "OK"-knapp bredvid istället. Då kan man navigera med piltangenterna också.

Medlem sedan dec. 20042 245 inlägg
#9

Troxy skrev:

Enligt mig är det mer användarvänligt med en "OK"-knapp bredvid istället. Då kan man navigera med piltangenterna också.

Det har också fördelen att man kan skicka formuläret utan js. :) Om du vill att formuläret ska skicka automatiskt mha js så borde det ändå finnas en submit-knapp när js är inaktiverat eller inte stöds.

Medlem sedan apr. 20041 597 inlägg
#10

zcorpan skrev:

Troxy skrev:

Enligt mig är det mer användarvänligt med en "OK"-knapp bredvid istället. Då kan man navigera med piltangenterna också.

Det har också fördelen att man kan skicka formuläret utan js. :) Om du vill att formuläret ska skicka automatiskt mha js så borde det ändå finnas en submit-knapp när js är inaktiverat eller inte stöds.

Upfattat! Tack för era kloka synpunkter! :)

Kan jag ha både en onchange-händelse samt en submit-knapp?

Medlem sedan dec. 20042 245 inlägg
#11

Jo, fast det kanske är lite förvirrande för användaren. Man kan använda NOSCRIPT, tex:

<noscript><p><input type="submit" value="OK"></p></noscript>

Alternativt att knappen är där från början och att man plockar bort den med js. :)

Medlem sedan apr. 20041 597 inlägg
#12

zcorpan skrev:

Alternativt att knappen är där från början och att man plockar bort den med js. :)

Som jag ser det är det kanske mer tydligt med en knapp som signalerar att här exekverar jag mitt val. Å andra sidan har jag sett andra webbbaserade mailtjänster som har kört på det spåret utan knapp.

Hmmm...Det är väl en smaksak antar jag :)

Medlem sedan dec. 20042 245 inlägg
#13

Personligen skulle jag bara använda en submitknapp och skippa onchange-händelser. Att ha formulär som skickas automatiskt tror jag inte är så bra för användarvänligheten. Jag kanske vill ändra val innan jag skickar, eller kunna gå igenom listan med tangentbordet, och sen skicka formuläret själv när jag är klar. :)

Medlem sedan apr. 20041 597 inlägg
#14

zcorpan skrev:

Personligen skulle jag bara använda en submitknapp och skippa onchange-händelser. Att ha formulär som skickas automatiskt tror jag inte är så bra för användarvänligheten. Jag kanske vill ändra val innan jag skickar, eller kunna gå igenom listan med tangentbordet, och sen skicka formuläret själv när jag är klar. :)

That's a good point! :) Jag går på den linjen. Det ska vara användarvänligt. Känner ibland att man gör saken mer för att det är roligt och se om man får tekniken att fungera men ofta går det då inte hand i hand med just användarvänligheten! :e

260 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)