Avatar billede jannek_ek Nybegynder
15. april 2005 - 22:05 Der er 17 kommentarer og
1 løsning

flere knapper i form

Jeg har lavet en form, med flere knapper med samme navn ("knap"), men forskellig værdi. i php skriptet, kalder jeg værdien af "knap", men der kommer ingen værdi frem. Så jeg er i tvivl om det er i orden at give flere knapper samme navn, eller om der er noget specielt man skal være opmærksom på.

<form blablabla...>
<input type="submit" name="knap" value="x">
<input type="submit" name="knap" value="y">
<input type="submit" name="knap" value="z">
</form>

der kan godt gå noget tid før jeg svare igen...
Avatar billede thesurfer Nybegynder
15. april 2005 - 22:10 #1
Hvis du har mulighed for at bruge JavaScript (hvilket jeg går ud fra, at du har):

<input type="button" name="knap1" value="x" onclick="fixaction(this.form, this.value)">

<input type="button" name="knap2" value="y" onclick="fixaction(this.form, this.value)">

<input type="button" name="knap3" value="z" onclick="fixaction(this.form, this.value)">

<script type="text/JavaScript">
function fixaction(f,v);
{
f.action = "dinside.EXT?vaerdi=" + v;
}
</script>

Jeg skriver EXT, da du kan bruger HTM, ASP, PHP osv..
Du skal så bare afslæse url-parameteren "vaerdi"..


Hvilket sprog benytter du?
Avatar billede thesurfer Nybegynder
15. april 2005 - 22:12 #2
Jeg mangler en meget vigtig ting.. submit.. :-)


<script type="text/JavaScript">
function fixaction(f,v);
{
f.action = "dinside.EXT?vaerdi=" + v;
f.submit;
}
</script>
Avatar billede jannek_ek Nybegynder
15. april 2005 - 22:13 #3
der skal egentligt sendes nogle flere variabler med, og de SKAL være skjulte
Avatar billede thesurfer Nybegynder
15. april 2005 - 22:14 #4
glemte vist nogle parenteser... :-)

<script type="text/JavaScript">
function fixaction(f,v);
{
f.action = "dinside.EXT?vaerdi=" + v;
f.submit();
}
</script>

Så kan det gå, når det skal gå hurtigt, og man multitasker..  :-)
Avatar billede thesurfer Nybegynder
15. april 2005 - 22:14 #5
Hvilket (serverside) sprog benytter du?
Avatar billede jannek_ek Nybegynder
15. april 2005 - 22:16 #6
php
Avatar billede jannek_ek Nybegynder
15. april 2005 - 22:16 #7
´men jeg tror ikke at problemet ligger der
Avatar billede thesurfer Nybegynder
15. april 2005 - 22:23 #8
Så kan du lavet 1 skjult felt, hvor værdierne er separaret f.eks. ";".

Eksempel:
<form name="minform" action="andenside.php" method="post">
<input type="hidden" name="skjultfelt">

<input type="button" name="knap1" value="x" onclick="saet(this.form,this.name,this.value)">
<br>
<input type="button" name="knap2" value="y" onclick="saet(this.form,this.name,this.value)">
<br>
<input type="button" name="knap3" value="z" onclick="saet(this.form,this.name,this.value)">
<br>
<input type="submit" name="submit" value="Send data">
</form>

<script type="text/JavaScript">
var knap1="ole";
var knap2="gik";
var knap3="i skole";

function saet(f,k,v)
{
window[k] = v;

f.skjultfelt.value = knap1 + ";" + knap2 + ";" + knap3;
}

document.FORMNAVN.skjultfelt.value=knap1 + ";" + knap2 + ";" + knap3;
</script>

Eksemplet er ikke testet endnu.. tester det lige om lidt..
window[noget] skulle svare til eval(noget), men mindre krævende..
Avatar billede thesurfer Nybegynder
15. april 2005 - 22:30 #9
Hvis du så (på PHP siden) aflæser indholdet af "skjultfelt", ville du få "x;y;z" (hvis du klikkede alle 3 knapper)..

Du kan så bruge Split eller Explode, til at fange værdierne, hver for sig..
Avatar billede thesurfer Nybegynder
15. april 2005 - 22:31 #10
PS: erstat "FORMNAVN" med "minform" (jeg ændrede det, men glemt den sidste linie..)
Avatar billede roenving Novice
16. april 2005 - 11:01 #11
Problemet kan sikkert være relateret til, at html og javascript opfatter flere elementer med samme name som et array af elementer, hvilket det serverside sprog skal promptes til med en array-notation, jeg har set det sådan: name="knap[]"

-- men jeg ville nok lave det helt simpelt med et skjult felt:

<form blablabla...>
<input type="hidden" name="xyz">
<input type="submit" name="knap" value="x" onclick="this.form.xyz.value=this.value;">
<input type="submit" name="knap" value="y" onclick="this.form.xyz.value=this.value;">
<input type="submit" name="knap" value="z" onclick="this.form.xyz.value=this.value;">
</form>

-- så kan du jo bare aflæse det skjulte felt ...

-- forøvrigt ville jeg i strandløvens eksempler have flyttet parsingen af felt og form i funktionen fremfor i felterne:

<input type="button" name="knap1" value="x" onclick="saet(this)">

function saet(elm){
window[elm.name] = elm.value;

elm.form.skjultfelt.value = knap1 + ";" + knap2 + ";" + knap3;
}
Avatar billede jannek_ek Nybegynder
17. april 2005 - 13:24 #12
Jeg har i forvejen de skjulte variabler med (<input type="hidden" name="x" value="y">), så det er kun det med knapperne, der er problemet... men jeg ville bestemt mene at man på en eller anden simpel måde (uden javascript), kunne registrere hvilken submitknap der bliver trykket ned.
Avatar billede jannek_ek Nybegynder
18. april 2005 - 11:33 #13
thesurfer jeg er ked af det men roenvig kom med det bedste og lettest tilgængeligt forslag, så roenvig kom med et svar. Men hvis du (thesurfer) har meget imod det må du også komme med et svar, så i begge for points.
Avatar billede thesurfer Nybegynder
18. april 2005 - 21:56 #14
Jeg springer over..
Avatar billede roenving Novice
19. april 2005 - 05:31 #15
Tjoh, jeg synes da ellers nok at strandløven har ydet en indsats !-)

Velbekomme '-)
Avatar billede thesurfer Nybegynder
19. april 2005 - 11:18 #16
"K.I.S.S."-metoden er bedst :-)
Jeg synes at metoden, hvilket var roenvings forslag, skal belønnes. :-)
- hop hop hop :-)
Avatar billede roenving Novice
22. april 2005 - 11:47 #17
Tak for point ;~}
Avatar billede jannek_ek Nybegynder
23. april 2005 - 11:32 #18
det var da så lidt og mange tak for hjælpen...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester