Button - Form - Value

Status
Niet open voor verdere reacties.

ManuNeko

Gebruiker
Lid geworden
24 jun 2009
Berichten
110
Ik heb op mijn form een aantal buttons staan. Na de submit wil ik controleren welke button er gedrukt is, om dan een update in SQL te doen. Mijn code werkte perfect totdat ik Internet Explorer ging testen... Toen bleek het tot mijn grote verbazing niet meer te werken.


PHP:
print "<tr><td width='15%' valign='top'>" . date_format(date_create($row{'MeldTime'}), 'd/m/Y H:i:s') . "</td>";
print "<td valign='top'>" . nl2br($row{'Melding'}) . "</td>";
print "<td width='5%' valign='top'>" . $row{'MeldUser'} . "</td>";
print "<td width='5%'align='center' valign='top'><button name='btnCheckBox' type='submit' class='checkButton' value='" . $row{'ID'} . "' >";
if ($row{'Afgehandeld'}==1)
   print "<img src='Assets/Images/Checked.png' border='0'>";
else	  
    print "<img src='Assets/Images/UnChecked.png' border='0'>";
print "<input name='txtCheckBox" . $row{'ID'} . "' type='hidden' value='" . $row{'Afgehandeld'} . "'></button></a></td></tr>";

Als ik nu ga updaten, dan gaat het mis.

PHP:
mysql_query("Update Meldingen Set Afgehandeld = 1, AfgeTime = Now(), AfgeUser = '" . $_SESSION['Login'] . "' Where ID = " . $_POST['btnCheckBox']) or die('Error, update query failed: ' . mysql_error());

Waarom werkt dit wel in Chrome, Safari, ... maar niet in Internet Explorer? En wat nog veel belangrijker is, hoe los ik dit op?
 
Lang leven IE, een webdesigners nightmare.
Waar het door komt, Bill wilt alles op een ander/zijn eigen manier doen.
Ik moet wel zeggen dat met IE8 al een begin gemaakt wordt om wat meer het ons wat makkelijker te maken.

Jou probleem, heb je al met IE getest wat er in de $_POST wordt verzonden.
En wat doet IE niet en wat lukt met de rest wel.
Je probleem is wel minimalistisch omschreven.
 
Als ik voor de update een print doe van $_POST['btnCheckBox'], dan krijg ik;

bij IE zie ik een vierkantje staat (dus een afdruk van het image)

bij de rest staat er de ID (vb. 96)

Dus als ik de update afdruk dan komt er bij, de rest in de where-clause: Where ID = 96

Bij IE staat er dan: Where ID = vierkantje (= dus een image; NIET het woord "vierkantje")

Resultaat: bij IE werkt de update uiteraard niet; bij de rest wel:evil:
 
zet dit een in je script:
echo (isset($_POST['btnCheckBox'])) ? "Checkbox has been send" : "Checkbox has NOT been send" ;
 
Dat geeft als resultaat: Checkbox has been send

Wat ik eigenlijk al wist, gezien er anders een fout op komt én ik ervoor test.
 
ps je je wil de html button tag gebruiken, maar je syntaxt is niet juist.
Dit is een html tag voor een button
<button type="button">Click Me!</button>
kijk hier maar w3schools.com
 
Als je type="button" gebruikt, dan wordt er geen submit gedaan.

Het probleem zit hem bij MS Internet Destroyer. Andere browser geven de valur door bij submit, maar IE geeft hetgeen tussen <button> en </button> staat door bij een submit.
 
wat wil je dat die button die? wil je dat die de form verzend?
Leg anders eens stap voor stap uit wat je met jet form wilt bereiken!
 
Op mijn form staan een aantal checkboxen met een melding die de gebruiker heeft ingebracht. Deze checkboxen zijn images.

Bij het clicken op een checkbox wordt de form verzonden en wordt de chekbox aangevinkt en verdwijnt de melding (omdat deze opgelost is).

Dit systeem werkt perfect in een normale browser. In IE werkt dit niet. Waarom? Omdat de slimme mensen van Microsoft de innerHTML en NIET de value doorsturen bij <button>.

De enige oplossing lijkt mij nu te werken met een submit button (<input>). Maar gezien ik dit geen mooie oplossing vind, ben ik op zoek naar een alternatief om mijn code in IE te laten werken zoals het in elke ander browser werkt.
 
begrijp nog steeds niet je concept, maar zou een ajax call met jquery niet een oplossing kunnen beiden!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan