Een veld van een formulier opzoeken in de database
Ik heb een PHP formulier gemaakt (opgemaakt met bootstrap; https://v4-alpha.getbootstrap.com/components/forms/)
Deze slaat de ingevoerde gegevens op in een MySQL database. Dat is me allemaal gelukt :)
Wat ik nu wil is eigenlijk dat er 2 velden bijkomen. In veld A wordt dan een waarde ingetypt (bijv. artikelnummer),
in veld B wordt dan automatisch de artikelnaam weergegeven. Deze gegevens kunnen uit een (andere) MySQL database gehaald worden.
Het mooiste zou trouwens zijn als aan de hand van dat ene veld meerdere velden gevuld kunnen worden automatisch.
Dat komt dan wel allemaal uit dezelfde database, dus men voert bijv. artikelnummer in en vervolgens worden de velden productnaam en ean-nummer automatisch gevuld.
Vervolgens moeten beiden velden net als de rest van de velden van het formulier opgeslagen worden in de database bij het verzenden van het formulier.
(Maar dat werkt dus eigenlijk al).
Een beetje het idee bij het bestellen bij een webshop dat als je je postcode ingevuld hebt de straat er automatisch komt te staan.
Kan iemand mij helpen hoe ik dit kan bewerkstelligen? Of een artikeltje waar ik er over kan lezen?
Alvast bedankt!
Gewijzigd op 08/02/2017 11:56:24 door Roy H
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var $form = $('form'),
$fieldA = $('input[name="code"]', $form);
$fieldA.on('keyup', function(event) {
$.ajax({
'url' : 'URL',
'data' : {
'code' : $fieldA.val()
},
'dataType' : 'JSON',
'success' : function(data) {
console.log(data.responseJSON);
}
})
});
$fieldA = $('input[name="code"]', $form);
$fieldA.on('keyup', function(event) {
$.ajax({
'url' : 'URL',
'data' : {
'code' : $fieldA.val()
},
'dataType' : 'JSON',
'success' : function(data) {
console.log(data.responseJSON);
}
})
});
Niet getest!
maar dat hoef je dan niet op te slaan bij de bestelling. Op basis van 12345 heb je genoeg info.
De rest query je er zo weer bij
Ivo de database waar de informatie vandaan gehaald wordt is een andere database dan waar de waardes van het formulier in opgeslagen worden.
Door dit mee te geven bevat de andere database alle juiste gegevens.
Ik ga weer verder knutselen :)
Als je enkel gebruik maakt van een veldnaam is het niet op voorhand evident dat hier extra functionaliteit aan hangt en kan dat voor problemen zorgen wanneer deze informatie wijzigt simpelweg omdat nergens uit blijkt dat er iets speciaals aan de hand is. Dit probleem treedt vooral / vaker op wanneer je met meerdere mensen aan een website werkt en wanneer er een strictere scheiding van code (JavaScript, HTML) is.
EDIT leg dus ergens expliciet in het formulier vast (en zorg dat dit direct duidelijk is) dat er met dit veld speciale dingen gebeuren en dat je dat veld dus niet zomaar kunt wijzigen.
Gewijzigd op 08/02/2017 14:44:13 door Thomas van den Heuvel