Ik heb een probleem met een POST waarde die afhankelijk van een radio-button wel of niet verzonden wordt. Ik heb het volgende formulier (opmaak weggelaten):
<form method="post" action="intern/alineawijzigen.int.php" enctype="multipart/form-data">
<input type="hidden" name="id" value="33" />
<input type="submit" value="Wijzigen" id="submit" />
<input type="text" name="alineaHeader" value="Voor alle activiteiten" size="70" id="alineaHeader" />
<textarea name="alineaContent" cols="50" rows="8" id="alineaContent">
{inhoud}
</textarea>
<input type="hidden" name="MAX_FILE_SIZE" value="1048576" />
<input type="file" name="picture" id="picture" />
<input type="checkbox" name="bewerken" id="bewerken" />
<select name="richting">
<option value="breedte" selected="selected">Breedte</option>
<option value="hoogte">Hoogte</option>
</select>
<input type="text" name="pixels" size="10" id="pixels" /> <label for="pixels">pixels maken</label>
<input type="radio" name="align" value="left" id="alignLeft" />
<input type="radio" name="align" value="right" id="alignRight" checked="checked" />
</form>
Als ik het formulier invul en ik de POST array weergeef op de volgende pagina krijg ik netjes het volgende overzicht:
Array
(
[id] => 33
[alineaHeader] => Voor alle activiteiten
[alineaContent] => {inhoud}
[MAX_FILE_SIZE] => 1048576
[richting] => breedte
[pixels] =>
[align] => right
)
De afbeelding wordt netjes geupload en alles lijkt perfect te werken. Maar zodra ik hetzelfde probeer maar de align-radiobutton op left zet valt de 1e POST waarde weg en blijft dit over als resultaat:
Array
(
[alineaHeader] => Voor alle activiteiten
[alineaContent] => {inhoud}
[MAX_FILE_SIZE] => 1048576
[richting] => breedte
[pixels] =>
[align] => left
)
Ik ligt ook niet aan het hidden field, want zodra ik dat tijdelijk weghaal en in de action van het formulier als GET waarde meegeef, komt hij wel goed aan maar valt de waarde [alineaHeader] => Voor alle activiteiten weer weg in de POST array. Door hetzelfde formulier zonder enctype te gebruiken is het probleem ineens verdwenen. Het lijkt dus om de combinatie enctype multipart en de radiobutton te gaan.
Ik heb mn (x)html laten valideren en daar kwam hij gewoon doorheen. Heeft iemand ook ooit last gehad van dit probleem?
-------------------------------------------------
Tijdens het typen van dit bericht bedacht ik me dat het een bug in IE zou kunnen zijn aangezien de POST data gewoon niet goed verzonden lijkt te worden.
En dat lijkt ook zo te zijn. Firefox laat bij het aanklikken van de andere radiobutton wel netjes dit zien:
Array
(
[id] => 33
[alineaHeader] => Voor alle activiteiten
[alineaContent] => {inhoud}
[MAX_FILE_SIZE] => 1048576
[richting] => breedte
[pixels] =>
[align] => left
)
Het lijkt er dus op dat ik zojuist een heel irritante bug in IE 6.0 heb ontdekt (alle microsoft updates zijn geinstalleerd).
Omdat ik het verhaal nu toch getypt heb wou ik het toch nog even posten.
Ik heb ondertussen een (lekker lelijke) workaround gevonden door gewoon bovenin het formulier <input type="hidden" name="fake" value="" /> in te voegen wordt die waarde niet meegestuurd en komen de nuttige waarden toch aan.
535 views