Heey mensen,

Ik wil m.b.v. jQuery en AJAX kijken of in de response die ik terug met AJAX of er een class gevonden is.

Dit gaat om de class .errors!


<script>
var errors = $(data).find('.errors')

if (errors)
{
    alert("Errors zijn gevonden");
}
else
{
    alert("Geen errors gevonden");
}
</script>
kan het nodig zijn dat er om de spans nog een element staat?

var errors = $('<div>' + data + '</div>').find('.errors');
Ivo P, Top dankjewel het werkt nu helemaal!
Het was waarschijnlijk handiger geweest als je je response anders had vormgegeven.

In plaats van het zoeken in een lap HTML had je een errors-array in JSON-formaat terug kunnen geven. Leeg array = geen errors, niet-leeg array = wel errors. Op die manier kun je veel gestructureerder te werk gaan met je geretourneerde data. De HTML kun je vervolgens eenvoudig genereren in je callback functie met behulp van deze data.

(in het laatste fragment van Mathieu stond op regel 11 een [color=#ff0000]![/color] die mij niet op zijn plaats lijkt, mogelijk zorgde dit voor verwarring?)
precies wat ik eerder probeerde aan te geven:


<?php

$aData['html'] = 'een lap html';
$aData['errors'][] = 'foutmelding X';
$aData['errors'][] = 'foutmelding Y';

headers('Content-Type: application/json';
echo json_encode($aData);
?>

Dat je ME-leraar (wat is dat voor vak?) er niet uitkomt, is nog geen reden om het maar aan de kant te schuiven.
Je code wordt er namelijk veel eenvoudiger van.


    posting.done(function(data){
        alert();
        var errors = data.errors;
        if (errors.length > 0)
        {
            alert("errors gevonden");
        }
        else
        {
            alert("Geen errors");
        }
    });

Ivo P op 18/11/2015 14:01:07
precies wat ik eerder probeerde aan te geven:

Jij verschafte eerder al het hoe (een mogelijke implementatie) en ik geef nu alsnog (wellicht ten overvloede) het waarom :).
<?php // Jquery

<div class="errors"></div>

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>

<script>
$(document).ready(function() {
if($('.errors').length > 0) {
console.log('Bestaat');
} else {
console.log('Bestaat niet');
}
});
</script>

?>

Reageren