11548 sujets

JavaScript, DOM et API Web HTML5

salut tt le monde,

je suis en train de mechamment bloquer sur un pb de debugage dans firefox et de jquery par conséquent, surement 3 fois rien, mais j'avoue que la je suis un peu largué..

je m'explique, je bosse sur une page php qui affiche un listing issu d'une base, avec un ensemble de fonctions (inserer, modifier, supprimer,..) à gérer par ajax/jquery.

Pourma fonction inserer, j'appelle une fenetre modale qui affiche un formulaire de saisie de données, je recupere les données et je veux les envoyer pour traitement à l'aide du script suivant :


submitHandler: function() {        
        $('#loading').show();
        $('#submit').hide();
        
        var user = new Object();      
        user.nom = $('#nom').val();
        user.matricule = $('#matricule').val();
        user.prenom = $('#prenom').val();
        user.age = $('#age').val();
        var userJSON = $.toJSON(user);   
     
        GereAppelModale ({action:"ajouter",liste:userJSON});
        $('#loading').hide();

        return false;    
      } 


je créé un objet avec mes données de formulaire, l'encode en json, et le fait passer à la fct GereAppelModale avec un passage en json des parametres action et liste.
Voici la fct GereAppelModale qui se trouve dans le fichier functions.jquery.js :


(function($){

  // requete ajax pour envoyer user issu du form pour traitmeent et recuperer nouvelles donnees data json 
  // affichage et maj de ce contenu dans div resultat       
              
  GereAppelModale = function(options)
  {                
    var defaults = {
        action: "",
        liste: ""
    };   
    var opts = $.extend(defaults, options);            
  
    $.ajax({
        type: "POST",
        url: "controller.php",
        dataType: "json",
        data: {listeJson : opts.liste, q: opts.action},
        success: function(datas)



et la, ho mystere de l'informatique, impossible de récupérer les parametres dans opts.
Dans firebug, c comme si je ne passais aucun parametre a GereAppelModale, voici ce qui est affiché dans la fenetre script de firebug :

upload/24894-firebug.jpg
il ne m'affiche pas le code source comme il est codé ...donc ne recupère rien, et plante par la suite.
Alors qu'à d'autres parties du code, le code pour ce mm type de fct est affiché correctement.
A se tirer une balle ! ça doit etre tout con, j'imagine que je dois faire une bonne grosse boulette alors si kk'un pouvait m'éclairer, ce serait vraiment trop cool Smiley biggrin

merci à tous !
Modifié par ishmar (03 May 2010 - 10:45)
Bonjour,

La fonction $.extend est trompeuse, peut-être qu'avec cette ligne cela marchera :

opts = $.extend({}, defaults, options);
Modifié par toitl (27 Apr 2010 - 22:07)
non, sorry, je peux pas ,c pour le taff Smiley cligne
en fait, firebug m'affiche bien le bon code, pour la syntaxe d'appel suivante :

GereAppelModale ({});


dès que je rajoute des parametres entre accolades, firebug n'affiche plus que GereAppelModale();.
dans ma fct js, j'ai déclaré 2 fct, comme ceci :


/*
 * jQuery functions user application
 */

(function($){

  // requete ajax pour envoyer user issu du form pour traitmeent et recuperer nouvelles donnees data json 
  // affichage et maj de ce contenu dans div resultat                     
  GereAppelModale = function(options)
  {                
    var defaults = {
        action: "",
        liste: ""
    };   
    //var opts = $.extend(defaults, options);
    var opts = $.extend(defaults, options);

....................................................

 error: function(msg){
          alert( "Error: " + msg );
        }
    }); 
  }    
                

  // requete ajax pour recuperer donnees user par json et creation
  // contenu et affichage de ce contenu
  AfficheListe = function(options)
  {                                                       
    var defaults = {
        action: "",
        liste: "",
        champ: "id"
    };   
    var opts = $.extend(defaults, options);       
.........................................................................
})(jQuery);
 


si je recopie le code de ma fct dans le code jquery appelant, ça fonctionne correctement, donc ça vient de mon passage de parametres j'imagine, mais j'ai plein d'appels à ma 2e fct AfficheListe qui eux marchent très bien..

c un truc de fou.. Smiley confus
Modifié par ishmar (28 Apr 2010 - 14:28)
bon, en fait j'ai trouvé comment résoudre le pb ou du moins le contourner Smiley smile
cela vient du passage de parametres dans ma fct, au lieu de le déclarer par
ex, comme ceci :

GereAppelModale ({action:"ajouter",liste:userJSON}); 


je le déclare de cette façon, en créant un objet javascript à cet effet :

var param = new Object();              
param.action = "ajouter";
param.liste = userJSON;

GereAppelModale (param); 


et la, t fonctionne Smiley biggrin
je pense que je voulais aller trop vite et oublier un peu les bases du passage de parametres (enfin kk chose de plus classique en fait) Smiley cligne
voila, si ça peut servir a kk'un ki a les mm pb que moi..

a+