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.


Code van mijn controller:

<?
if (isset($_POST['email'])){

$gegevens = array("email" => $_POST['email'], "order-hash" => $_POST['order-hash']);

echo json_encode($gegevens);
}
if ($gegevens['order-hash'] === '12345')
$gegevens["order-hash"] = false;
?>

Kan iemand mij helpen ?
Het moest zo .
<?
if (isset($_POST['email'])){

$order = new Order();
$order->set_query("SELECT orders.* FROM orders INNER JOIN users ON orders.user_id = users.id WHERE email = :email AND order_hash = :order_hash", false);
$order->bind('email', $_POST['email']);
$order->bind('order_hash', $_POST['order-hash']);

$gegevens['status'] = $order->fetch();

if($gegevens['status']){

EmailHelper::order_confirmation($order);

}
echo json_encode($gegevens);
}
?>


Nu moet ik de ajax jquery toepassen in mijn formulier.
Dit is de formulier van help/index.tpl.php

<?
<div class="customer-support-questions-wrap customer-support-customer">
<div class="faq-block-resend-tickets">
<h2>Tickets verloren? Geef uw emailadres of ordernummer op en we versturen ze opnieuw</h2>
<form action="/help" name="registration" method="post">
<label class="input-label">E-mailadres</label>
<input type="email" placeholder="E-mailadres" name="email" id="email" class="resend-tickets-input">
<label class="input-label">Ordernummer</label>
<input type="ordernummer" placeholder="Ordernummer" name="order-hash" id="order-hash" class="resend-tickets-input">
<button type="submit" class="green-button icon-button">
<svg style="width:24px;height:24px" viewBox="0 0 24 24">
<path fill="#000000" d="M2,21L23,12L2,3V10L17,12L2,14V21Z"></path>
</svg>
Verzenden
</button>
</form>
</div>
?>
Ik zou toch eens naar Ben zijn advies kijken. Want ik heb het idee dat je nog steeds de plank misslaat!
Ik heb het zelfde gedaan als leren maar het werkt nu niet.

<?

submitHandler: function(form) {
//jquery ajax
$("button").click(function(){
$.ajax({
type:'POST',
url: '/help',
dataType:'json',
data:{"email": $('#email').val() , "order-hash": $('#order-hash').val(),},
success: function(data){
if(data.status){
alert(data["email"] + " " + data["order-hash"]);
}
else{
alert(data["email"] + " " + "You fucked up!");
}
console.log(data);
}});
});
form.submit();
}

?>
Wat gebeurt er wel dan? Met een 'Werkt niet!' kunnen we vrij weinig.
Wees altijd zo specifiek mogelijk.

- Word de AJAX-request wel uitgevoerd?
- Wat meldt je console.log()?
Ik krijg geen alert te zien als ik beide inputs invul en in console.log meld hij ook niks?
Word de AJAX-request wel uitgevoerd?

Kijk eens in je browser bij de Developer Tools/Tab?
Of roep je request die gedaan wordt eens handmatig op?
In mijn developer tools/tab zie ik help bestand staan als ik de inputs invul maar alert komt niet te voor schijn

heb mijn code nu zo.

<?
submitHandler: function(form) {
//jquery ajax
$.ajax({
type:'POST',
url: '/help',
dataType:'json',
data:{"email": $('#email').val() , "order-hash": $('#order-hash').val(),},
success: function(data){
if(data.status){
alert(data["email"] + " " + data["order-hash"]);
}
else{
alert(data["email"] + " " + "You fucked up!");
}
console.log(data);
}});
}

?>
Wat doet het PHP-script nu als je die uitvoert?
In de Developer-tools kan je dit bij de Network-tab eenvoudig bekijken. En anders handmatig uitvoeren.
Zet eens een console.log('AJAX-success'); na lijn 9.

Een kwestie van debuggen wat er wel en niet lukt.
Ik zie in console tab niks als ik de inputs invul en nog steeds geen alert en in network tab zie ik help bestand steeds terecht komen als ik de inputs heb ingevuld en op de knop verzenden klik.


<?
submitHandler: function(form) {
//jquery ajax
$.ajax({
type:'POST',
url: '/help',
dataType:'json',
data:{"email": $('#email').val() , "order-hash": $('#order-hash').val(),},
success: function(data){
console.log('AJAX succes');
if(data.status){
alert(data["email"] + " " + data["order-hash"]);
}
else{
alert(data["email"] + " " + "You fucked up!");
}
console.log(data);
}});
}

?>
'AJAX succes' zie je dus ook niet terug?
Dan lijkt je ajax-functie niet te worden uitgevoerd? Kijk eens wat verder, en bekijk eens of de submitHandler wel een console.log() met wat inhoud uitspuugt?

PS: Gebruik a.u.b. leestekens in je berichten hier. Dat leest wat makkelijker.

Reageren