[PHP] Post probleem tussen MS IE en FireFox

Pagina: 1
Acties:

  • OSwimmer
  • Registratie: November 2001
  • Laatst online: 07-03 22:00
Volgende formulier run ik in 2 verschillende browser (MS Explorer en Firefox)

code:
1
2
3
4
<form method="post" action="">
<input type="image" src="../tekeningen/icoon_update.gif" alt="Aanpassen" title="Aanpassen" name="actie" value="update">
<input type="image" src="../tekeningen/icoon_delete.gif" alt="Verwijderen" title="Verwijderen" name="actie" value="delete"></td>
</form>


Als ik dit nu test in Firefox, dan geeft die mij als resultaat ook de waarde (met naam actie) van de afbeelding (belangrijk om te weten: update of delete)
Bij print_r($HTTP_POST_VARS) krijg ik dus:
Array ([actie_x] => 6 [actie_y] => 14 [actie] => update )

Als ik dat nu in IE doe, geeft die de waarde van mijn afbeelding niet mee :(
en krijg ik dus via een print_r($HTTP_POST_VARS) het volgende:
Array ( [actie_x] => 8 [actie_y] => 12 )
En kan ik dus $_post['actie'] niet uitlezen :(

Weet er iemand hoe ik ervoor kan zorgen dat ik in IE WEL de waarde van mijn afbeelding kan uitlezen?

[ Voor 17% gewijzigd door OSwimmer op 02-06-2004 15:29 ]

Greetz, OSwimmer


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 16:59

gorgi_19

Kruimeltjes zijn weer op :9

Ik zie hier geen programmeerprobleem in; althans, niet serverside met de PHP. Ik denk eerder dat je het op de client moet zoeken; Firefox wel, IE niet.

Daarom een klein duwtje door de schutting heen naar Webdesign & Graphics

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 24-05 14:53

NMe

Quia Ego Sic Dico.

Het ziet er allemaal kloppend uit, dus ik snap het niet echt. Ik zie maar 1 gek ding in je post, en dat is dat je $HTTP_POST_VARS en $_POST door elkaar gebruikt, probeer eens alleen $_POST te gebruiken, al zal dat je probleem niet oplossen denk ik.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • OSwimmer
  • Registratie: November 2001
  • Laatst online: 07-03 22:00
NMe84 schreef op 02 juni 2004 @ 15:38:
Het ziet er allemaal kloppend uit, dus ik snap het niet echt. Ik zie maar 1 gek ding in je post, en dat is dat je $HTTP_POST_VARS en $_POST door elkaar gebruikt, probeer eens alleen $_POST te gebruiken, al zal dat je probleem niet oplossen denk ik.
Lost inderdaad niks op.
Voorlopig doe ik het dan maar met 2 aparte formuliertjes, maar dat is eigenlijk te veel overbodige data.

Moest er toch iemand een idee hebben hoe ik het kan oplossen, laat maar komen ;)

Greetz, OSwimmer


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

Bosmonster

*zucht*

Je moet er bij formulieren niet vanuit gaan dat de waarde van niet-input velden meegestuurd wordt. Dit is namelijk compleet browser en actie-afhankelijk. Er zit bijvoorbeeld ook verschil in of je met je muis op een knop klikt of dat je met ENTER submit, etc.

Oplossing is 2 aparte formuliertjes of een hidden input veld dat je onclick even aanpast met de juiste actie.

  • OSwimmer
  • Registratie: November 2001
  • Laatst online: 07-03 22:00
Hartelijk bedankt Bosmonster. Dankzij een klein beetje javascript werkt het nu volledig, dus in MS IE en FireFox, met volgende code:

code:
1
2
3
4
5
<form method="post" action="" name="form">
<input type="hidden" name="actie">
<input type="image" src="../tekeningen/icoon_update.gif" alt="Aanpassen" title="Aanpassen" onClick="javascript:document.form.actie.value='update';">
<input type="image" src="../tekeningen/icoon_delete.gif" alt="Verwijderen" title="Verwijderen" onClick="javascript:document.form.actie.value='delete';">
</form>

[ Voor 23% gewijzigd door OSwimmer op 02-06-2004 16:37 ]

Greetz, OSwimmer


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

Bosmonster

*zucht*

Korter (en beter):

code:
1
onClick="this.form.actie.value='update'">


het javascript: moet je in events weglaten. De formnaam 'form' is ook tricky :) aangezien er dus vaste variabelen zijn die form heten (zoals het hier gebruikte this.form). Haal dat hele name-attribuut dus weg als je het niet gebruikt met deze kortere notatie.

Voor browsercompatibiliteit is het ook geen slecht idee om value="" vast in het hidden input veld te zetten.

[ Voor 15% gewijzigd door Bosmonster op 02-06-2004 16:46 ]


  • OSwimmer
  • Registratie: November 2001
  • Laatst online: 07-03 22:00
Bosmonster schreef op 02 juni 2004 @ 16:45:
Korter (en beter):

code:
1
onClick="this.form.actie.value='update'">
Idd korter en beter, want ik kwam al direct tot de vaststelling dat elke form-naam uniek moest zijn, maar met this. is dat ineens opgelost :P

Nogmaals bedankt Bosmonster!

[ Voor 10% gewijzigd door OSwimmer op 02-06-2004 16:53 ]

Greetz, OSwimmer

Pagina: 1