[Javascript] action-property form

Pagina: 1
Acties:

  • sjink
  • Registratie: Oktober 2002
  • Laatst online: 03-02-2025
Ik heb een pagina met de volgende code
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>

<head>

<title>test</title>

<script language="javascript" type="text/javascript">
<!--

function submitForm(pAction){

   document.frm.action = "index.asp?action="+pAction;
   document.frm.submit();

}

//-->
</script>

</head>

<body>

<form name="frm">

   <input type="button" value="edit" onClick="submitForm('edit');">
   <input type="button" value="delete"onClick="submitForm('delete');">

</form>

</body>

</html>


Hij zou dus als ik op edit druk het form moeten submitten naar index.asp?action=edit en als ik op delete druk naar index.asp?action=delete natuurlijk

Het probleem is dat hij schijnbaar de action afkapt naar het vraagteken :?
Heb al eens een alert erin gezet om de waarde van de action property uit te lezen
code:
1
2
3
4
5
6
7
function submitForm(pAction){

   document.frm.action = "index.asp?action="+pAction;
   alert(document.frm.action);
   document.frm.submit();

}


En dan geeft die gewenste url terug (bv. index.asp?action=edit )
Maar als ie frm.submit doet dan kapt die de url af na het vraagteken dus laadt die de pagina index.asp? ipv index.asp?action=edit

Iemand een idee?

*blup*


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20:27

gorgi_19

Kruimeltjes zijn weer op :9

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Expliciet nog method="get" toevoegen aan je <form> tag?

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • sjink
  • Registratie: Oktober 2002
  • Laatst online: 03-02-2025
Haha dat was het moest gewoon method="post" in form zette was ik vergeten ;)

[ Voor 66% gewijzigd door sjink op 25-06-2004 14:40 ]

*blup*


  • avoid
  • Registratie: November 2002
  • Laatst online: 24-05 13:37
Nee, method="get" toevoegen zal niet helpen!
Om de GET variabelen van een FORM ACTION op de server uit te kunnen lezen,
*moet* het formulier een POST action hebben!
't Enige wat je hoeft te doen is 'method="post"' toevoegen aan je FORM.

Time flies like an arrow, fruit flies like a banana.


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:46

crisp

Devver

Pixelated

Je moet gewoon geen GET-variabelen in je action zetten, maar deze gewoon als hidden fields opnemen in je form.

Intentionally left blank


  • Rickets
  • Registratie: Augustus 2001
  • Niet online

Rickets

Finger and a shift

sjink schreef op 25 juni 2004 @ 14:40:
Haha dat was het moest gewoon method="post" in form zette was ik vergeten ;)
Het is niet verstandig om GET-vars in je action te gebruiken in een POST-formulier; sommige browsers geven de GET-vars dan niet door. Je kan hier beter hidden-inputs voor gebruiken.

[edit]grmbl crisp :P

[ Voor 6% gewijzigd door Rickets op 25-06-2004 14:45 ]

If some cunt can fuck something up, that cunt will pick the worst possible time to fucking fuck it up, because that cunt’s a cunt.


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 10-05 18:53

Bosmonster

*zucht*

crisp schreef op 25 juni 2004 @ 14:45:
Je moet gewoon geen GET-variabelen in je action zetten, maar deze gewoon als hidden fields opnemen in je form.
In principe zou dit niet uit moeten maken. De querystring is gewoon onderdeel van de URL, ook bij een POST actie.

Als een browser hier problemen mee heeft ligt het probleem eerder bij de browser dus (oudere Opera versies hadden er problemen mee geloof ik).

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:46

crisp

Devver

Pixelated

Bosmonster schreef op 25 juni 2004 @ 15:21:
[...]


In principe zou dit niet uit moeten maken. De querystring is gewoon onderdeel van de URL, ook bij een POST actie.

Als een browser hier problemen mee heeft ligt het probleem eerder bij de browser dus (oudere Opera versies hadden er problemen mee geloof ik).
Ondanks dat vind ik het gewoon consequenter om alles met de post-headers mee te sturen in plaats van dat je de ene helft van je variabelen uit je query-string moet gaan halen; daarbij manipuleert een enkel hidden veld wat makkelijker dan dat je je hele action-attribuut opnieuw moet gaan opbouwen (in het geval dat je meerdere variabelen op die manier mee wil sturen).

Intentionally left blank


  • gvdh81
  • Registratie: Juli 2001
  • Laatst online: 23-05 17:57

gvdh81

To got or not to got..

xces zoekt ff stukje code op ...
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    <script type='text/javascript'>
        function applyChanges() {
            document.forms[0].elements['action'].value = 'apply';
            document.forms[0].submit();
        }

        function processChanges() {
            document.forms[0].elements['action'].value = 'apply';
            document.forms[0].submit();
        }
    </script>

    <form ...>
        <input type="hidden" name="action" value="">
        <input type="button" onclick="applyChanges(); return false;" value="preview">
        <input type="button" onclick="processChanges(); return false;" value="verwerken">
    </form>


Xces is voortaan meer met XHTML 1.0 strict bezig, dus bovenstaande is code die niet getest is, maar het idee moet werken en strookt met crip zijn ideen.

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:46

crisp

Devver

Pixelated

meer zo dan:

code:
1
2
3
4
5
6
7
8
9
10
11
12
<script type="text/javascript">
    function changeAction(act) {
        document.forms['myForm'].elements['action'].value = act;
        document.forms['myForm'].submit();
    }
</script>

<form id="myForm" action="foo.php" method="post">
    <input type="hidden" name="action" />
    <input type="button" onclick="changeAction(this.value)" value="preview" />
    <input type="button" onclick="changeAction(this.value)" value="verwerken" />
</form>


note dat dit nog steeds niet valid XHTML strict is ;)

[ Voor 8% gewijzigd door crisp op 25-06-2004 16:45 ]

Intentionally left blank


  • sjink
  • Registratie: Oktober 2002
  • Laatst online: 03-02-2025
Het gaat hier om een intranet-pagina dus hoef me geen zorgen te maken over standaarden enzo ;)

*blup*


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:46

crisp

Devver

Pixelated

sjink schreef op 26 juni 2004 @ 05:09:
Het gaat hier om een intranet-pagina dus hoef me geen zorgen te maken over standaarden enzo ;)
Natuurlijk moet je wel aan standaarden denken, anders leer je jezelf alleen maar verkeerde dingen aan. Stel nou dat ze op dat bedrijf besluiten over te gaan naar FireFox omdat IE te gevaarlijk is met al z'n lekken?
Natuurlijk hoeft het ook niet meteen XHTML strict allemaal (dat was meer een reactie op xces), maar waak wel voor IE-only code - het is zo makkelijk om jezelf een universele manier van coden aan te leren die werkt in alle browsers.

Intentionally left blank

Pagina: 1