Bonjour tout le monde :)
je suis en train de refaire mon site, et de l'optimiser par des fonctions (j'executais le code PHP de manière linéaire avant). C'est donc la premiere fois que j'utilise des fonctions, et des requires.Mais première page, premier problème :/J'execute une page en ajax avec dataType: 'json' en paramètre... La requete s'execute "sans probleme" (Le code de statue est 200) mais cela m'affiche comme même l'erreur suivante : "SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data". Donc je précise que ma page est bien en UTF-8, last_error_json() ne retourne aucune erreur et de même pour error_reporting(-1);aroundPar contre la ou cela est etrange... C'est que si je retire le dataType: 'json', la requete fonctionnne... Et que c'est le require qui fait bugger la requete. Je m'explique...aroundCe code ne fonctionne pas :

<?php
    require_once('fonctions/pseudo.php');
    die(json_encode('Je suis en train de tester'));
?>

tandis que ses deux codes fonctionnes :

<?php
    //require_once('fonctions/pseudo.php');
    die(json_encode('Je suis en train de tester'));
?>
<?php
    //Copier/Coller du contenu de la page pseudo.php
    die(json_encode('Je suis en train de tester'));
?>

5 réponses


intelligid
Réponse acceptée

json_encode transforme un tableau array en chaîne de caractère string ;)

Ben une chaîne de caractère ne peut pas être transformer en json :p Je ne comprends pas pourquoi tu veux transformer une chaîne de caractère en Json. Cela n'a aucun sens.

Pourtant je fais ça sur toutes les autres requêtes et cela fonctionne à merveille...
Mais cela ne peut pas être ça le problème puisque le code marche si je retire le require_once()...

<?php
    require_once('fonctions/pseudo.php');
    die(json_encode(array('Je suis en train de tester')));
?>

De plus, j'ai essayé ce code et il ne fonctionne pas ...

Ho punaise ca me rend fou èé...

<?php
    require_once('fonctions/pseudo.php');
    die('');
?>

et j'ai mit comme requete ajax :

    ajax = $.ajax({
                                type: "post",
                                url: '../requetes/verify_pseudo.php',
                                dataType: 'html',
                                data: {pseudo: $('input[name=pseudo]').val()},
                                success: function(data){
                                    ajax = false;
                                    alert(data.length);
                                    if (data.length == 0){
                                        // pas d'erreur
                                    }else{
                                        $('div[id=suiv]').removeClass().addClass('no');
                                        $('div[id=form]').stop(false).animate({left: '0'},133).animate({left: '10px'},233).animate({left: '5px'},133);
                                        erreur(data,'principale');
                                    }
                                },
                                error: function(xhr,b,c){
                                    $('div[id=suiv]').removeClass().addClass('no');
                                    ajax = false;
                                    erreur('Une erreur inconnu s\'est produite au niveau de nos serveurs lors de la vérification de votre pseudonyme.','principale');
                                }
                            }); 

ok... Tout fonctionne bien ... Enfin 'alert(data.length);' me retourne la valeur 1 et si je retire "require_once('fonctions/pseudo.php');", le alert me retourne bien 0...