check inbouwen in controller

Overzicht

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 3 4 volgende »

06/04/2018 13:16:25
Anchor link
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:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?
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 ?
 
PHP hulp

PHP hulp

20/04/2024 08:48:32
 
- Ariën  -
Beheerder

- Ariën -

06/04/2018 14:16:02
Anchor link
Of je maakt een apart 'status'-element aan met de waarde 'false', want er zijn vast geen orders die ook zo heten.

Let er wel op dat je de json_encode nog moet verhuizen.
 

06/04/2018 14:27:55
Anchor link
bedankt arien. Heb je misschien een link waar ik voorbeelden kan kijken?
 
- Ariën  -
Beheerder

- Ariën -

06/04/2018 14:47:37
Anchor link
Voorbeelden van??
 

06/04/2018 14:52:58
Anchor link
Je zij maak anders een apart'status'-element aan met de waarde 'false' heb je daar voorbeelden van ik kan het niet vinden.
 
- Ariën  -
Beheerder

- Ariën -

06/04/2018 14:59:10
Anchor link
Er bestaat geen tutorial voor alle oplossingen ;-)

Maar je moet dus een $gegevens['status'] aanmaken in je array met als value de string: false.
Gewijzigd op 06/04/2018 14:59:33 door - Ariën -
 

06/04/2018 15:05:34
Anchor link
Bedoel je zo ?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?
if (isset($_POST['email'])){

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

    echo json_encode($gegevens);
    exit;
}

?>
Gewijzigd op 06/04/2018 15:08:02 door
 
- Ariën  -
Beheerder

- Ariën -

06/04/2018 15:17:52
Anchor link
Nee.
Kijk eens hoe je array nu opgebouwd is.
Je was al op de goede weg bezig hiervoor.
 

06/04/2018 15:22:31
Anchor link
oke, maar is het zo dan goed?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?
if (isset($_POST['email'])){

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

   echo json_encode($gegevens);
}

if ($gegevens['order-hash'] === '12345')
    $gegevens['status'] = false;
?>
Gewijzigd op 06/04/2018 15:22:50 door
 
- Ariën  -
Beheerder

- Ariën -

06/04/2018 15:25:30
Anchor link
Als je die json_encode naar beneden verhuist, en false als string behandelt. In overige gevallen is het het beste om status een true mee te geven.

Dan kan je hier makkelijk op controleren in je JavaScript:
Eerst kijken naar de status, en dan de orderhash tonen.
Gewijzigd op 06/04/2018 15:31:02 door - Ariën -
 

06/04/2018 15:38:04
Anchor link
De json_encode heb ik nu naar beneden verhuist. Ik doet het even stap voor stap klopt het zo?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?
if (isset($_POST['email'])) {

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

    if ($gegevens['order-hash'] === '12345')
        $gegevens['status'] = true;

    echo json_encode($gegevens);
    exit;
}

?>
 
- Ariën  -
Beheerder

- Ariën -

06/04/2018 15:44:17
Anchor link
Nee, wat doet die ['status'] in je array?
True is nog steeds geen string, en waarom kan het nu geen 'false' worden?

Is een PHP-tutorial niet een beter idee zodat je weet hoe array's werken?
Gewijzigd op 06/04/2018 15:44:48 door - Ariën -
 

06/04/2018 15:56:48
Anchor link
Ik snap niet? ik heb nu in de array de ['status'] weggehaald.
Heb het nu zo:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?
if (isset($_POST['email'])) {

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

    if ($gegevens['order-hash'] === '12345')
        $gegevens['status'] = true;

    echo json_encode($gegevens);
    exit;
}

?>
 
- Ariën  -
Beheerder

- Ariën -

06/04/2018 16:01:01
Anchor link
- Komma is overbodig
- bouw een 'else' statement voor false
- zet true tussen quotes.

Check de uitvoer in je browser of Developer-tab.
 

06/04/2018 16:10:48
Anchor link
zo werkt het ik zie in console status:true als ik in de input van ordernummer 12345 typ een andere ordernummer doet tie status:false dus het is goed!
Bedankt arien

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?
if (isset($_POST['email'])) {

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

    if ($gegevens['order-hash'] === '12345')
        $gegevens['status'] = true;

    else{
        $gegevens['status'] = false;
}


    echo json_encode($gegevens);
    exit;
}

?>
Gewijzigd op 06/04/2018 16:14:17 door
 
Thomas van den Heuvel

Thomas van den Heuvel

06/04/2018 16:13:10
Anchor link
Of initialiseer status op false. Het lijkt mij belangrijk dat alle gegevens altijd een waarde hebben.

Zoiets dus:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
if (isset($_POST['email'])) {
    $gegevens = array(
        'email'         => $_POST['email'],
        'order-hash'    => $_POST['order-hash'],
        'status'        => false,
    );


    if ($gegevens['order-hash'] === '12345') {
        $gegevens['status'] = true;
    }


    echo json_encode($gegevens);
    exit;
}

?>
Gewijzigd op 06/04/2018 16:13:44 door Thomas van den Heuvel
 

06/04/2018 16:16:39
Anchor link
Thomas werkt ook prima zal die van jouwne beter gebruiken! Bedankt voor je hulp
Gewijzigd op 06/04/2018 16:32:49 door
 
Rob Doemaarwat

Rob Doemaarwat

06/04/2018 16:36:51
Anchor link
- Ariën - op 06/04/2018 16:01:01:
- zet true tussen quotes.

Juist niet doen. Een boolean in PHP wordt netjes een boolean in JSON, en dus ook weer een boolean in Javascript. Als je "true" en "false" gaat doen worden het ook in Javascript strings, en is "false" dus ook true (want: niet lege string) ...

Ik neem trouwens aan dat die check op "order-hash" nog iets meer om handen heeft (gaat krijgen) dan puur op "12345" checken? Anders kun je dit net zo goed in client afhandelen.
 

06/04/2018 16:48:40
Anchor link
Rob Doemaarwat op 06/04/2018 16:36:51:


Ja klopt ik ben aan het oefenen vandaar.
Gewijzigd op 06/04/2018 16:49:26 door
 

10/04/2018 11:16:46
Anchor link
Ik moet als status true is een alert met orderhash en e-mail weergeven
en anders een alert met de tekst "Je doet het niet goed" weergeven zodra die false is.

Kan iemand me helpen?

Mijn code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
if (isset($_POST['email'])) {
    $gegevens = array('email'=> $_POST['email'], 'order-hash'=> $_POST['order-hash'], 'status'=> false,);

    if ($gegevens['order-hash'] === '12345') {
        $gegevens['status'] = true;
    }


    echo json_encode($gegevens);
    exit;
}

?>


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?
<script>
$(document).ready(function(){


    $("button").click(function(){
        $.ajax({
            type:'POST',
            url: '/leren',
            dataType:'json',
            data:{"email": $('#email').val() , "order-hash": $('#order-hash').val(),},
            success: function(data){

                alert(data["email"] + " " + data["order-hash"]);
                console.log(data);
        }});
    });

});

</script>


?>
 
- Ariën  -
Beheerder

- Ariën -

10/04/2018 11:24:06
Anchor link
in je success-event van je $.ajax() functie moet je een if-else constructie inbouwen, waarbij je kijkt naar de inhoud van je datavariabele. Daar staat in vermeld of de status true of false is, en dan kan je aan de hand daarvan de juiste melding tonen.
 

Pagina: 1 2 3 4 volgende »

 

Dit topic is gesloten.



Overzicht

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.