drop-downlijst direct opslaan
Klopt.
We zijn weer een stap verder de goede richting in.
Met de volgende code krijg ik in iedergeval op iedere regel een alert.
Alleen nu krijg ik als melding in de alert: Fout bij het uitvoeren van de AJAX-request:
verder staat er niets achter.
Maar natuurlijk zou het nog beter zijn als er een MYSQLi UPDATE uitgevoert wordt.
Met de volgende code krijg ik in iedergeval op iedere regel een alert.
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<script src="https://geschenkenlaantje.nl/js/jquery/jquery-3.7.1.min.js" ></script>
<script>
$(document).ready(function() {
$('.verpakkingen').change(function() {
var selectedValue = $(this).val();
// Voer een AJAX-verzoek uit met de geselecteerde waarde als POST-parameter
$.ajax({
url: 'ajax_select.php',
type: 'POST',
data: { option: selectedValue },
dataType: 'json', // Het verwachte datatype van de respons
success: function(data) {
// Verwerk de succesvolle respons hier
$('#result_packings').html('De request is met succes uitgevoerd: ' + JSON.stringify(data));
},
error: function(xhr, status, error) {
alert('Fout bij het uitvoeren van de AJAX-request: ' + error);
}
});
});
});
</script>
<script>
$(document).ready(function() {
$('.verpakkingen').change(function() {
var selectedValue = $(this).val();
// Voer een AJAX-verzoek uit met de geselecteerde waarde als POST-parameter
$.ajax({
url: 'ajax_select.php',
type: 'POST',
data: { option: selectedValue },
dataType: 'json', // Het verwachte datatype van de respons
success: function(data) {
// Verwerk de succesvolle respons hier
$('#result_packings').html('De request is met succes uitgevoerd: ' + JSON.stringify(data));
},
error: function(xhr, status, error) {
alert('Fout bij het uitvoeren van de AJAX-request: ' + error);
}
});
});
});
</script>
Alleen nu krijg ik als melding in de alert: Fout bij het uitvoeren van de AJAX-request:
verder staat er niets achter.
Maar natuurlijk zou het nog beter zijn als er een MYSQLi UPDATE uitgevoert wordt.
Gewijzigd op 12/10/2023 11:20:07 door Frits van Leeuwen
vermoedelijk geeft je ajax request geen (valide) json terug.
kijk in de netwerktab van je browser (in de buurt van je console scherm) wat de response dan was.
bijvoorbeeld leeg, een stuk html of een php danwel mysql error
kijk in de netwerktab van je browser (in de buurt van je console scherm) wat de response dan was.
bijvoorbeeld leeg, een stuk html of een php danwel mysql error
Bedankt Ivo P
Ah..... daar zag ik al snel dat ik de url in ajax niet had aangepast.
Nu zie ik teminste wel de toevoeging bij de fout alert staan.
Unexpected token '<',"
<!doctype "... is not valid JSON
Ook deze fout heb ik er inmiddels uit gehaald. Maar helaas geen gegevens die bewaard blijven. Als ik nu mijn keuze maak in de drop-down lijst, verdwijnd deze weer als ik het scherm ververs.
Ah..... daar zag ik al snel dat ik de url in ajax niet had aangepast.
Nu zie ik teminste wel de toevoeging bij de fout alert staan.
Unexpected token '<',"
<!doctype "... is not valid JSON
Ook deze fout heb ik er inmiddels uit gehaald. Maar helaas geen gegevens die bewaard blijven. Als ik nu mijn keuze maak in de drop-down lijst, verdwijnd deze weer als ik het scherm ververs.
Gewijzigd op 12/10/2023 17:29:11 door Frits van Leeuwen
Dan wordt de query niet uitgevoerd. Bouw dus foutafhandeling in op je query, en stuur een returnwaarde mee als het wel of niet gelukt is.
Klinkt logisch, maar ik heb geen idee hoe ik dat doe.
Niet zo heel lastig. Gewoon met if en else controleren wat de query doet.
En die output zie je in de response van je browser, waar je zoals hier gezegd is, je AJAX kan debuggen.
En die output zie je in de response van je browser, waar je zoals hier gezegd is, je AJAX kan debuggen.
Code (php)
Gewijzigd op 12/10/2023 20:38:19 door - Ariën -
Zelf gebruik ik een Rest client om dit te testen. Insomnia REST.
Dan bouw je apart je request op in het linker deel van het scherm, en na de SEND knop, zie je rechts de response.
Dan kun je 1 op 1 zien wat er gebeurt, of er in je json bericht rare teksten staan (geupdate en niet-geupdate is natuurlijk geen valide json, dus je krijgt een error in je aanroepende javascript)
Het is alleen wel even leren welke http-headers je mee moet sturen.
het liefst doe je dit als je niet ingelogd moet zijn, al kun je de cookie-headers ook nog wel onderscheppen in je browser.
Misschien niet voor beginners, maar je kunt er wel voordeel van hebben.
Dan bouw je apart je request op in het linker deel van het scherm, en na de SEND knop, zie je rechts de response.
Dan kun je 1 op 1 zien wat er gebeurt, of er in je json bericht rare teksten staan (geupdate en niet-geupdate is natuurlijk geen valide json, dus je krijgt een error in je aanroepende javascript)
Het is alleen wel even leren welke http-headers je mee moet sturen.
het liefst doe je dit als je niet ingelogd moet zijn, al kun je de cookie-headers ook nog wel onderscheppen in je browser.
Misschien niet voor beginners, maar je kunt er wel voordeel van hebben.
Dat zou een goede optie kunnen zijn, maar ik denk dat ik eerst wil weten of dat de query goed over komt. Want ik vermoed dat daar de boel al helemaal fout gaat.
In De UPDATE query wil ik eindigen met "WHERE ID=" en dan het id nummer dat ik in het aangeklikte formulier in een hidden veld heb geplaatst. De update zelf is alleen het id nummer dat uit de selectie rold plaatsen in id_packing.
Het is een eenvoudige query en dus ook makkelijk te controleren als ik hem ergens kan lezen.
In De UPDATE query wil ik eindigen met "WHERE ID=" en dan het id nummer dat ik in het aangeklikte formulier in een hidden veld heb geplaatst. De update zelf is alleen het id nummer dat uit de selectie rold plaatsen in id_packing.
Het is een eenvoudige query en dus ook makkelijk te controleren als ik hem ergens kan lezen.
Ja, probeer het eens uit. je kan hem zelfs in je response laten zien.
Als je de site live zet haal je dit er uiteindelijk wel uit. Want niemand hoeft wijzer te worden van je databaseindeling.
En vergeet niet te escapen met mysqli_real_escape_string()
Als je de site live zet haal je dit er uiteindelijk wel uit. Want niemand hoeft wijzer te worden van je databaseindeling.
En vergeet niet te escapen met mysqli_real_escape_string()
Je zegt het allemaal zo makkelijk. Ik voel me echt een beginner. En dat terwijl ik dacht wel redelijk wat te kunnen. Maar misschien ben ik er telang uit en is het een kwestie van er weer in komen.
Misschien is het even een idee om dit topic even vanaf begin af aan door te lezen? Want het is geen rocketscience meer, gezien we het nodige al uitgelegd hebben. We kunnen ook in herhaling vallen, maar dat lijkt mij weer zo zonde. ;-)
En anders is het even een idee om dit even in de ijskast te zetten, en te kijken hoe de basis van PHP en SQL werkt. Ik heb een idee dat je teveel hooi op je vork neemt.
En anders is het even een idee om dit even in de ijskast te zetten, en te kijken hoe de basis van PHP en SQL werkt. Ik heb een idee dat je teveel hooi op je vork neemt.
Gewijzigd op 12/10/2023 23:46:14 door - Ariën -




