form submit werkt pas na 2 keer klikken submit button
Nu is het vreemde dat als ik de waardes aanpas ($_POST[Value1], $_POST[Value2], $_POST[Value3]) deze netjes worden doorgestuurd naar het postscript. Als ik op de submit button klik krijg ik de variabele (go_submit) de eerst keer niet door... Als ik twee keer de button aanklik werkt de submit button wel. Wat doe ik niet goed. Ik hoef toch niet bij elke "this.form.submit" een nieuwe form aan te maken o.i.d?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
///////////////////////////////////////////////////////////////////////////////////////////////////
echo "<form id=\"myform\" action=\"post.php\" method=\"POST\" />";
echo '<input type="text" name="Tekst" style="width: 200px;" style=" border: none;" style=" border: none;" value="Value1"/>';
echo "<input type=\"text\" name=\"Value1\" onchange=\"this.form.submit();\" value=\"".$_POST[Value1]."\" />";
echo '<input type="text" name="Tekst" style="width: 200px;" style=" border: none;" style=" border: none;" value="Value2"/>';
echo "<input type=\"text\" name=\"Value2\" onchange=\"this.form.submit();\" value=\"".$_POST[Value2]."\" />";
echo '<input type="text" name="Tekst" style="width: 200px;" style=" border: none;" style=" border: none;" value="Value3"/>';
echo "<input type=\"text\" name=\"Value3\" onchange=\"this.form.submit();\" value=\"".$_POST[Value3]."\" />";
echo " <input type='submit' name='go_submit' onsubmit=\"this.form.submit();\" value='Opslaan record' />";
echo "</form";
?>
///////////////////////////////////////////////////////////////////////////////////////////////////
echo "<form id=\"myform\" action=\"post.php\" method=\"POST\" />";
echo '<input type="text" name="Tekst" style="width: 200px;" style=" border: none;" style=" border: none;" value="Value1"/>';
echo "<input type=\"text\" name=\"Value1\" onchange=\"this.form.submit();\" value=\"".$_POST[Value1]."\" />";
echo '<input type="text" name="Tekst" style="width: 200px;" style=" border: none;" style=" border: none;" value="Value2"/>';
echo "<input type=\"text\" name=\"Value2\" onchange=\"this.form.submit();\" value=\"".$_POST[Value2]."\" />";
echo '<input type="text" name="Tekst" style="width: 200px;" style=" border: none;" style=" border: none;" value="Value3"/>';
echo "<input type=\"text\" name=\"Value3\" onchange=\"this.form.submit();\" value=\"".$_POST[Value3]."\" />";
echo " <input type='submit' name='go_submit' onsubmit=\"this.form.submit();\" value='Opslaan record' />";
echo "</form";
?>
Waarom al dat Javascript?
Dit is het standaard gedrag van een submit knop. Is dus ook echt niet nodig.
Waar heb je dit geleerd?
Gaat onherroepelijk een keer fout.
Verder zou ik geen inline css gebruiken.
- je controleert niet op het bestaan van deze POST variabelen...
- ...en escaped de waarden niet :/
- je hebt drie keer een inputveld met dezelfde naam (Tekst), dit lijkt mij niet kloppen
- de afsluitende tag van het formulier mist een sluitingshaak ( > )
- is dit je hele script? in dat geval is dit een onvolledig HTML-document; je kunt niet verwachten dat als je een HTML-document niet opstelt volgens de regels dat dan alles gewoon werkt, standaarden die je moet volgen zijn er niet voor niets
Wat probeer je overigens met het formulier te bereiken? Is dit een zoekformulier? Ik weet niet precies wanneer het onchange-event elke keer activeert, maar is dit niet een beetje overkill? Tenzij je een soort van autocomplete-functionaliteit aan het bouwen bent?
En ja, je hoeft de submit-button niet te vertellen dat 'ie het formulier moet submitten. Dat was zijn taak al.
Gewijzigd op 30/04/2016 13:41:28 door Thomas van den Heuvel