Bonsoir à tous.

Je suis actuellement en train de me torturer avec Json, et je n'arrive pas à trouver d'ou viendrait le souci.

J'ai le script Jquery suivant :

<script type="text/javascript">
                $(function() {
                    $('#form').submit(function(){
                        $('#loader').html('<img src="<?php echo base_url(); ?>assets/img/icons/ajax-loader.gif" />');
                        message = $(this).find('textarea[name=message]').val();
                        form_data = {
                            message:message,
                            ajax:1
                        };
                        $.ajax({
                            url:"script",
                            type:'post',
                            async:false,
                            data:{
                                message:message,
                                ajax:1
                            },
                            success:function(data){
                                alert(data);
                            }
                        });
                        $('#loader').html('');
                        return false;
                    });
                });
            </script>

Donc ce script fait appelle à une page qui va insérer une sorte de tweet dans ma db, une fois inséré, je récupère le dernier "tweet" inséré avec les infos de l'utilisateur qui l'a post. Jusqu'ici tout va bien. je termine mon script avec un "echo json_encode($array);" de mon tableau afin de récupérer les données via la fonction jquery.

Je récupère donc un objet json (je crois bien qu'il s'agit d'un objet) qui ressemble donc à ceci :
{"id":"1","user_id":"1","message":"Test de message pour voir avec la longueur","is_admin":"0","is_system":"0","created":"1307385895","modified":"1307385895","username":"admin","displayname":"admin"}

Firebug me le trouve bien, quand je fais un alert sur le data pour l'afficher, je le trouve bien de cette forme. En suivant le tutorial sur Json, il est dis que pour récupérer une des valeurs il faut simplement faire un data.id, data.username etc... Cependant dans le alert() ça m'affiche un unsigned, et si je l'insère en html, ça ne me retourne rien.

Je ne sais pas trop comment récupérer les données, je ne suis vraiment pas habitué à Json, si quelqu'un à une idée...

Merci beaucoup d'avance !

5 réponses


WinuX
Réponse acceptée

Ou encore donnees = $.parseJSON(data);

Ainsi pour avoir l'id il te suffira de faire un donnees.id

slyvaan
Auteur

Bonjour,

J'ai réussi à me débrouiller autrement pour arriver à mes fins. Même si la question reste en suspens, vu que j'aimerai comprendre mon erreur quand même ; ;

En ajoutant un dataType:"json" dans $.ajax({...}) ?

ou $.getJSON()

slyvaan
Auteur

Bonjour,

Le dataType:'json' ne m'a malheureusement rien changé, par contre avec un parseJSON j'ai réussi à obtenir ce que je recherchais.

Merci beaucoup pour vos réponses :)