Sätt ett namn på formuläret.
Så får du skriva ett javascript:
<select onchange="javascript:document.formnamn.submit();">
13 svar · 449 visningar · startad av lillebror
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!
Sätt ett namn på formuläret.
Så får du skriva ett javascript:
<select onchange="javascript:document.formnamn.submit();">
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?
<form action="inc/include.function.mail.php" method="post" [b]name="choosemailfolder"[/b]>
<select onchange="document.[b]choosemailfolder[/b].submit();" [b]name="mailfolder"[/b]>
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?
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
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">
Enligt mig är det mer användarvänligt med en "OK"-knapp bredvid istället. Då kan man navigera med piltangenterna också.
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.
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?
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. :)
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 :)
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. :)
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