'Error's' met JSON?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Wouter Lolz

Wouter Lolz

29/10/2011 01:08:37
Quote Anchor link
Hey,

Ik vraag me al een tijdje af hoe ik dit zou moeten gaan maken.
Dus bijvoorbeeld:
Ik heb één input voor me naam, en een textfield voor bijv. een nieuws bericht.
Ik verzend die data met gebruik van Jquery, Alleen hoe kan ik nou zorgen, dat als ik de input niet hebt ingevuld, dat er een error terug komt met:

Er is een error opgetreden:
- Naam niet ingevuld.

En voor textfield spreek voorzig, alleen als ik dus alle 2 niet invul? dan zou ik dit willen krijgen:

Er is een error opgetreden:
- Naam niet ingevuld.
- Bericht niet ingevuld.

of, als de naam al reets bestaad in de database:

Er is een error opgetreden:
- Naam bestaad al reets.

Dit doe ik normaal gewoon met welke error het eerst komt, die het eerst maalt.
maar ik wil dus eigenlijk alle errors willen weergeven. (Ik doe meestal de velden (of ze leeg zijn) checken met Javascript of jquery, en of die al bestaad, of geldig is, met PHP)

Ik heb nu 1x met JSON gewerkt, en ik denk dat het daar wel te maken valt? (Array's)
Maar ik weet niet hoe.
Zouden jullie me een beetje op de goede weg kunnen zetten? :).

Bedankt!
Wouter
 
PHP hulp

PHP hulp

21/11/2024 21:05:14
 
PHP Scripter

PHP Scripter

29/10/2011 01:51:42
Quote Anchor link
Ik neem aan dat je de pagina die de data afhandelt aanroept via een AJAX post?
 
Kees Schepers

kees Schepers

29/10/2011 11:08:23
Quote Anchor link
Om vanuit PHP data om te zetten in JSON hoef je er eigenlijk geen verstand van te hebben. Wat je zou kunnen doen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
//hier de actie die aangeroepen wordt dmv ajax post met jquery.post():
if(strlen($_POST['naam']) == 0) {
  $errorMessages['naam'] = 'Uw naam mag niet leeg zijn';
}

if(strlen($_POST['email']) == 0) {
  $errorMessages['email'] = 'Uw e-mail mag niet leeg zijn';
}


echo json_encode($errorMessages);
exit;
?>


Je javascript:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
function dezeWordtUitgevoerdBijOnSubmit(formElement, e) {
    e.preventDefault();

    $.post('url.php', $('input, select').serializeArray(), function(data) {
        var errorMessages = '';
        $.each(data, function(field, message) {
            errorMessages += '<strong>' + field + '</strong> '  + message + '<br />';
        });
        
        //je maakt ergens een div die de class errorMessages heeft en display:none heeft:
        $('.errorMessages').html(errorMessages).slideDown();
    }, 'json');
}


Hier zou je ongeveer mee uit de voeten moeten kunnen. Ik heb dit wel even uit de losse pols getypt dus je moet het misschien nog wel debuggen. Kun je goed doen met FireBug in FireFox.

Succes!
Gewijzigd op 29/10/2011 11:08:50 door kees Schepers
 
PHP Scripter

PHP Scripter

29/10/2011 17:14:35
Quote Anchor link
Kees, zo doe ik het ook.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php json_encode($valid, $message); ?>


Spreekt voor zichzelf!
 
Wouter Lolz

Wouter Lolz

30/10/2011 00:03:24
Quote Anchor link
Okay, bedankt!
Ps. ik heb is gezien, dat iemand een PHP functie gebruikte in Java?
 
Jacco Brandt

Jacco Brandt

30/10/2011 11:07:20
Quote Anchor link
Mocht je doelen op bijvoorbeeld trim(), dan zou het kunnen want die functie bestaat in zowel PHP als javaSCRIPT.
 



Overzicht Reageren

 
 

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.