Hallo,
Ik loop vast met mijn if statement in mijn controller.
Dit is wat er moet gebeuren:
Ik heb een formulier met een input email en ordernummer gemaakt en een alertbox met ajax jquery.
Vervolgens als het ordernummer niet 12345 is dan moet ik de status = false meegeven aan de data.
Variabelen in JavaScript zijn zonder dollar-tekens, en in je succes-event hadden we daar als data voor, waar die data in staat.
Verder klopt er weinig van de opbouw.
Is het niet zinniger om eerst eens te kijken hoe if-else precies werkt? Want je kanniet zomaar tussen de accolades iets neer plempen.
Ik snap ook bovendien totaal niet waarom je status opeens op true zet in je ajax()-functie. Je wilt het enkel alleen ophalen en op de juiste manier presenteren!
Zorg dat je weet wat je doet, en waarom het gebeurt.
Met random wat proberen schiet je niks mee op!
?
Onbekende gebruiker
10-04-2018 12:41
Ik ben aan het oefenen vandaar.
De variabelen zijn niet meer in dollar tekens.
Heb mijn code nu zo.
Je kan wel blijven klooien, maar er klopt nog steeds niks van.
Als ik opeens zomaar dit zie:
- Op lijn 15 opeens status op true zetten, terwijl je enkel dingen wilt ophalen.
- Accolades die ontbreken
- Verkeerde variabelen gebruiken
Dan heb ik echt het idee dat je je met dingen bezighoudt die veel hoofdstukken verder staan, dan waar jij nog geen kennis van hebt.
Begin eerst eens met wat simpels om met een if-else scriptje (zonder AJAX) bijvoorbeeld te bepalen of iemand 18 jaar of ouder is, en zelfstandig mag autorijden. En declareer die leeftijd in een variabele.
Begin dus eerst eens met simpele opdrachtjes i.p.v. je met AJAX bezig te houden.
Ik heb echt het idee dat je lukraak wat probeert zonder te weten wat er gebeurt en wat je doet. Dus doe hier liever eerst wat ervaring mee op in plaats van je op een groter project te richten waar je geen wijs uit wordt vanwege de omvang ervan.
?
Onbekende gebruiker
10-04-2018 12:59
<?php
$leeftijd= 18;
if($leeftijd >= 18) {
echo 'Je bent ouder dan 18 jaar je mag zelfstandig auto rijden.';
} else {
echo 'Je bent jonger dan 18 jaar je mag niet zelfstandig auto rijden';
}
?>
<script>
var leeftijd;
var text;
if ("leeftijd >18") {
text = "Je bent ouder dan 18 je mag zelfstandig auto rijden";
} else {
text = "Je bent jonger dan 18 je mag niet zelfstandig auto rijden";
}
</script>
?>
Dit doe je op dezelfde wijze als in leren.ctr.php: je bouwt een array (bijvoorbeeld $gegevens) en stuurt deze naar output via echo json_encode($gegevens);.
Overigens, als je data ontvangt in JSON-formaat, dan kun je de variabelen hierin aanspreken via data.<naam_van_variabele> zoals je ook in het if-statement doet: data.status. Het is dan wel zaak dat deze informatie ook in $gegevens zat en wordt doorgegeven, anders kent JavaScript deze variabelen uiteraard niet. Zo geef je geen e-mail door, deze zit dan ook niet in data.email (dit zou dus data.email moeten zijn, en niet data["email"] waarschijnlijk).
Zorg ervoor dat je begrijpt hoe de JavaScript (client side) communiceert met de bijbehorende PHP-scripts (server side) en zorg er ook voor dat alle informatie die je nodig hebt en wilt gebruiken ook echt wordt doorgegeven anders gaat dit niet werken.