Voorvullen formulier
De code zou er ongeveer zo uit moeten zien.(heb nog geen foutafhandeling etc. erin zitten)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<select name="opgeslagen_locaties">
<option value=""selected="selected">Opgeslagen locaties</option>
<?php
$fill_query = "
SELECT
name,
street,
number
FROM
venue
";
$result = mysql_query($fill_query, $con);
while( $row = mysql_fetch_assoc($result) )
{
echo "<option value='$row[name]'>$row[name]</option>";
}
?>
</select>
<input type="text" name="street" value="waarde (street) behorende bij de gekozen db-waarde uit selectbox">
<input type="text" name="number" value="waarde (number) behorende bij de gekozen db-waarde uit selectbox">
etc...
etc...
<option value=""selected="selected">Opgeslagen locaties</option>
<?php
$fill_query = "
SELECT
name,
street,
number
FROM
venue
";
$result = mysql_query($fill_query, $con);
while( $row = mysql_fetch_assoc($result) )
{
echo "<option value='$row[name]'>$row[name]</option>";
}
?>
</select>
<input type="text" name="street" value="waarde (street) behorende bij de gekozen db-waarde uit selectbox">
<input type="text" name="number" value="waarde (number) behorende bij de gekozen db-waarde uit selectbox">
etc...
etc...
Hoe kan ik nu aan de hand van de select waarde de juiste velden invullen uit de database in de inputfields?
Ik heb deze vraag bij javascript gezet omdat ik denk dat ik hiermee te maken ga krijgen maar ben er niet helemaal zeker van aangezien ik niet veel javascript kennis heb.
Gewijzigd op 11/08/2012 01:36:41 door N K
N K op 11/08/2012 01:27:48:
(heb nog geen foutafhandeling etc. erin zitten)
Waarom zou je ook?
Oh ja, dat is handig en daar kun je veel problemen mee oplossen.
Misschien eerst een beetje basic php leren?
Code (php)
Gewijzigd op 11/08/2012 02:59:45 door - SanThe -
Je antwoord heeft ook totaal geen betrekking op mijn probleem. Weliswaar heb ik de notatie van variabelen misschien verkeerd aangeleerd(?) maar dit is m.i. niet fout. Zie hier: http://phpboek.jaspervries.nl/phpboek-2-teksten_weergeven.php
Mijn voorbeeld werkt dan ook perfect.
Foutafhandeling heb ik expres achterwege gelaten wat ik ook heb vermeld in mijn openingspost. Als ik het erin had gezet had het niets uitgemaakt omdat het geen SQL probleem is.
Mocht mijn vraag niet duidelijk zijn dan wil ik het wel proberen opnieuw te formuleren?
N K op 11/08/2012 10:58:19:
Mijn voorbeeld werkt dan ook perfect.
Dat lijkt me uitgesloten, want je mist quotes bij de array keys en je gebruikt niet de juiste quotes voor de HTML attributen. De verbetering van SanThe is dus wel degelijk nuttig voor je, ook al wil je het niet aanvaarden.
Dan enigszins antwoord op je vraag. Check in de while loop waar je de select vult of de waarde van $row['name'] gelijk is aan de geselecteerde waarde. Zo ja, dan sla je de gegevens van de andere velden op in tijdelijke variabelen (die je wel daarvoor hebt geinitialiseerd op een lege string!!). Na de while loop echo je die tijdelijke variabelen in de value van de inputs.
Probeer het eens, kom je er echt niet uit dan kan ik wel een kort scriptje voordoen.
Toevoeging op 11/08/2012 11:40:57:
P.S. lees ook het boek nog eens. De auteur geeft duidelijk zijn voorkeur:
Quote:
De auteur van dit boek geeft daarom ook persoonlijk de voorkeur aan de tweede methode: misschien iets meer werk, maar het kan niet mis gaan. Daarnaast krijgt de variabele een andere kleur in de PHP-editor waardoor het meteen duidelijk is dat er een variabele tussen de tekst staat.
En het tweede voorbeeld is:
Quote:
echo 'De club staat op de '.$plaats.'e plaats';
Wat SanThe dus ook aangeeft.
Gewijzigd op 11/08/2012 11:35:58 door Erwin H
Mijn voorbeeld werkt wel degelijk (probeer het maar eens). Maar dat neemt niet weg dat de notatie beter kan.
Ik heb ook niet gezegd dat ik de verbetering niet aanvaard maar heb daarentegen nergens nog gehoord dat het niet kan of heeel fout is. Ik ga het vanaf nu in ieder geval op SanThe's manier doen. Dus dank voor weer een leermoment.
Dan over je oplossing, misschien interpreteer ik hem verkeerd:
Hoe weet ik vóór een submit welke select waarde is geselecteerd? Of moet ik een aparte form met submit maken voor de selectbox? Ik had gehoopt dat dit met javascript/ajax kon.
Je moet na het aanvinken van een selectbox een submit doen die de juiste gegevens ophaalt. Dus in je select regel een onclick="submit();" erin meegeven ik kan je geen voorbeeld geven nu omdat ik de ipad zit maar ik denk dat er iemand is die het wel kan.
Heb onderstaande nu bij mijn select toegevoegd:
Dit heeft wel een refresh nodig dus ik zoek nog even naar een alternatieve oplossing zonder refresh.
Gewijzigd op 11/08/2012 15:12:18 door N K
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function getValues() {
$.ajax({
url: "/pad/naar/script.php",
type: "POST",
data: {
"action": "getValues",
"loc_id": $("#opgeslagen_locaties").val()
},
dataType: "json",
success: function(result) {
$("#street").val(result.street);
},
error: function(xhr, textStatus, errorThrown) {
alert(errorTrown);
}
});
}
$.ajax({
url: "/pad/naar/script.php",
type: "POST",
data: {
"action": "getValues",
"loc_id": $("#opgeslagen_locaties").val()
},
dataType: "json",
success: function(result) {
$("#street").val(result.street);
},
error: function(xhr, textStatus, errorThrown) {
alert(errorTrown);
}
});
}
Gewijzigd op 11/08/2012 16:53:35 door Ger van Steenderen
Dank! ik ga er eens naar kijken