form submit werkt pas na 2 keer klikken submit button
Ik heb een kort php/html script gemaakt. Het script stuurt een aantal variabele via een POST door naar een andere pagina (post.php).
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?
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.
en waarom zet je je form niet gewoon buiten de php tags in plaats van al die echo's ???
Waar heb je dit geleerd?
Waar heb je dit geleerd?
En script consequent: op de ene regel heb je " bij de echo en de volgende '
Gaat onherroepelijk een keer fout.
Verder zou ik geen inline css gebruiken.
Gaat onherroepelijk een keer fout.
Verder zou ik geen inline css gebruiken.
- Value1, Value2 en Value3 (in $_POST) zijn nu constanten, deze POST variabelen zouden tussen quotes moeten staan
- 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.
- 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




