Oprettet tir. d. 18. oktober 2011 kl. 22:57:27

nemlig
nemlig (5.151 point. Point ude: 0)

Underlig $_POST værdi ved submit

Hmmm - jeg tror det rabler for mig.... :(
Se lige denne simple kode:

echo "<form action='".$_SERVER['PHP_SELF']."' method='post'>";
.......kode kode kode.......
<button name='mySubmit' value='1' class='knap' type='submit'>Ret</button>
</form>

Ved submit har værdien på $_POST[‘mySubmit'] hidtil været = 1
Nu er værdien pludselig = "Ret" (altså teksten på knappen).

Jeg har godt nok rettet lidt forskelligt, men kan ikke finde ud, hvad årsagen er?

Skrevet tir. d. 18. oktober 2011 kl. 23:11:39| #1

olebole
olebole (214.613 point)
<ole>

Brug altid et hidden field til den slags:


echo "<form action='".$_SERVER['PHP_SELF']."' method='post'>";
echo '<input type="hidden" name="mySubmit" value="1">';
.......kode kode kode.......
<button class='knap' type='submit'>Ret</button>
</form>


/mvh
</bole>

Skrevet tir. d. 18. oktober 2011 kl. 23:18:35| #2

nemlig
nemlig (5.151 point)
Jo, men hvorfor har det ændret sig.
Jeg har 3 submit-knapper, som gør noget forskelligt, hvorfor jeg har sat

value=1 på knap1
value=2 på knap2
value=3 på knap3

Og så tjekker med med
if($_POST['mySubmit'] == 1) { ...
osv.

Det har virket i 2 år nu, men nu skal jeg tjekke med
if($_POST['mySubmit'] == 'Ret') { ...

Skrevet tir. d. 18. oktober 2011 kl. 23:22:32| #3

olebole
olebole (214.613 point)
Hvilken browser og hvilken DTD?

Skrevet tir. d. 18. oktober 2011 kl. 23:28:35| #4

nemlig
nemlig (5.151 point)
IE9, men nu hvor du spørger, så prøvede jeg lige i kompatibilitetstilstand samt i IE8 mode.

Så virker det.

Jeg tester i øvrigt lokalt med WAMPSERVER, PHP ver. 5.3.

Hmm - hvad gør jeg så, når jeg har 3 knapper? Jeg kan selvfølgelig lave en

if($_POST['mySubmit'] == 1 OR $_POST['mySubmit'] == "Ret") { ...

Skrevet tir. d. 18. oktober 2011 kl. 23:31:02| #5

olebole
olebole (214.613 point)
Hos mig skriver denne kode:


<?php
if (!empty($_POST)) {
    var_dump($_POST);
}
?>

<form action='' method='post'>
    <button name='mySubmit' value='1' class='knap' type='submit'>Ret</button>
</form>


- dette i IE9, Firefox, Opera og Safari (Windows 7):


array
  'mySubmit' => string '1' (length=1)


Det ændrer dog ikke ved, at god kodeskik er at bruge et hidden field til at diskriminere med på serveren  =)

Skrevet tir. d. 18. oktober 2011 kl. 23:35:08| #6

nemlig
nemlig (5.151 point)
Ja - jeg tog fejl. Min IE9 stod med:
Browsermode = IE9
Documentmode = IE7

Det er IE7-mode, der driller.

Men hvordan kan jeg anvende hidden field, når jeg har 3 knapper?

Skrevet tir. d. 18. oktober 2011 kl. 23:35:44| #7

olebole
olebole (214.613 point)
Jeg så først din kommentar (#4), efter jeg selv havde skrevet, men har nu testet og har samme oplevelse. Det understreger blot, at løsningen er et hidden field.

Du sætter bare værdien på feltet med JavaScript i stil med:


echo "<form action='".$_SERVER['PHP_SELF']."' method='post'>";
echo '<input type="hidden" name="mySubmit" value="">';
.......kode kode kode.......
<button class='knap' type='submit' onclick="this.form.mySubmit.value='1'">Ret</button>
</form>


Skrevet tir. d. 18. oktober 2011 kl. 23:37:57| #8

olebole
olebole (214.613 point)
Knappens onclick event fyres af lige før dens default handling (som er at submitte formen). Derfor sættes værdien, lige inden formen submittes  *o)

Skrevet tir. d. 18. oktober 2011 kl. 23:41:45| #9

nemlig
nemlig (5.151 point)
Sejt - Jeg er virkelig glad for din detaljerede hjælp. Det er super med dine forklaringer.

Er du begyndt at samle point, så smidt venligst et svar.

Skrevet ons. d. 19. oktober 2011 kl. 00:03:57| #10

olebole
olebole (214.613 point)
Det glæder mig, du hører til de nysgerrige, der har mod på at 'arkivere' en lille teknisk uddybning. Det er bedre end points - så du lægger selv et svar  *o)

Skrevet ons. d. 19. oktober 2011 kl. 08:40:39| #11

nemlig
nemlig (5.151 point)
Jeg suger til mig med største fornøjelse.
Det virker perfekt.
Tusind tak endnu engang.

Skrevet ons. d. 19. oktober 2011 kl. 15:14:55| #12

jakobdo
jakobdo (181.727 point)
www.codebreaker.dk
Hvad er årsagen til du bruger <button> og ikke bare <input type="submit"> ?

Skrevet ons. d. 19. oktober 2011 kl. 15:18:05| #13

nemlig
nemlig (5.151 point)
Jeg mener, at en rigtig rar gut her på Eksperten hjalp mig engang med noget kode, og jeg tror at han i koden foreslog <button>. Men det kunne du måske aldrig finde på, at foreslå? ;)

Skrevet ons. d. 19. oktober 2011 kl. 15:44:09| #14

jakobdo
jakobdo (181.727 point)
www.codebreaker.dk
Aner ikke hvad du snakker om. :o) Men kunne du ikke opnå samme resultat, med <input type="submit" knapper ?
Mener nemlig IE har et problem med netop at sende disse values med.

Skrevet ons. d. 19. oktober 2011 kl. 15:49:54| #15

nemlig
nemlig (5.151 point)
Jo det må jeg kunne.
Jeg har anvendt OleBole's forslag, og det har jeg testet i forskellige IE versioner og Firefox.
Det fungerer også.

Skrevet ons. d. 19. oktober 2011 kl. 15:52:30| #16

jakobdo
jakobdo (181.727 point)
www.codebreaker.dk
Synes måske bare at tilføje js til hver knap, er ekstra, hvis altså en <input type="submit"> kan gøre det samme.
Et problem kan selvfølgelig være, at value="1" også vil være teksten på knappen. (måske derfor button blev valgt i sin tid) :o)

Skrevet ons. d. 19. oktober 2011 kl. 18:09:06| #17

olebole
olebole (214.613 point)
Der er også <input type="image" src="foo.png"> , men den sender koordinaterne til klikket med. Det kan være smart ved visse ting, men har forvirret mange i årenes løb  =)

I 'gamle dage' renderede BUTTON elementet pænere end INPUT - og desuden kan man bruge ikoner og tekst som indhold - hvilket gjorde, at mange (f.eks. undertegnede) foretrak BUTTONs og stadig bruger dem

Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   

   

Seneste spørgsmål

Brugerliste med link til profil

Oprettet den 26. maj 2012 kl. 14.29
sayn giver 30 point for svar | Giv et svar »

php curl driller

Oprettet den 26. maj 2012 kl. 08.31
PHPnQrd giver 200 point for svar | Giv et svar »

Array i array

Oprettet den 25. maj 2012 kl. 08.32
sebster giver 60 point for svar | Giv et svar »



   




Tips & Tricks fra PC World

Teaser billede

Læserne: Her er vores værste it-indkøb

Det er ikke al it-udstyr, som er det rene guld. Her er nogle af læsernes skrækhistorier.


Anmeldelser fra PC World

Teaser billede

Test: Mobil med Ferrari-design - og en Trabant-motor

Motorola har begået endnu en smartphone med lækkert design og potentiale til at være blandt de bedste. Men den når ikke i mål. Se her hvorfor.


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Sådan siger du farvel til Facebook

Læs her, hvordan du dropper Facebook og i stedet anvender nogle brugervenlige alternativer, så du stadig kan være social på nettet.


Nyheder fra Computerworld

Teaser billede

Galleri: De fedeste håndholdte gennem 40 år

Her har du de mest banebrydende håndholdte computere gennem alle tider.


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger