IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Mon appel JS ne s'effectue pas


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 103
    Par défaut Mon appel JS ne s'effectue pas
    Bonjour,

    j'ai une page avec deux onglets.
    - Sur la première, un tableau avec des données : ID et lib.
    - Sur le second j'ai fais un tableur et je souhaite qu'il affiche les données du tableau (Id et lib).

    Le problème est que cela ne passe jamais dans la seconde page donc j'en déduis que l'appel Js ne se passe pas bien.

    Voici ma page principale comprenant entre autre la div avec les deux onglets et la div qui contient le tableur ainsi que le code JS :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <nav class="page_menu menu_tabs">
        <ul>
            <li data-box="generale" class="selected"><?php echo langage::write("vue_generale"); ?></li>
            <li data-box="tableur" id="a_tableur"><?php echo langage::write("tableur"); ?></li>
        </ul>
    </nav>

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <!--TABLEUR-->
     
    <div id="page_content_tableur" class="hidden">
            <div id="page_content_marque" >
                <div>
                    <p class="bold">
                        <?php echo langage::write('modifier_le_libelle_des_marques');?>
                    </p>
                    <div class="tableur_marques">
                    </div>
                </div>
            </div>
           <div class="text_right">
            <input type="submit" value="Enregistrer" class="green_button" />
           </div>
        </div>
    </div>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
        (function ($) {
     
           $(".menu_tabs li:second").click();
            //var handsone_marques;
     
     
            var myRenderer = function (instance, td, row, col, prop, value, cellProperties) {
                Handsontable.renderers.TextRenderer.apply(this, arguments);
                if (cellProperties.check_error) {
                    $(td).addClass('check_error');
                } else {
                    $(td).removeClass('check_error');
                }
            };
     
     
            var defaultOptions = {
                manualColumnMove: false,
                manualColumnResize: false,
                manualRowResize: false,
                stretchH: 'all',
                outsideClickDeselects: false,
                rowHeaders: true,
                colHeaders: true,
                fixedColumnsLeft: 5,
                columnSorting: false,
                //contextMenu: true,
                contextMenu: ['row_above', 'row_below', 'remove_row', '-----------', 'undo', 'redo'],
                minRows: 5,
                autoColumnSize: true,
                //debug: true,
            };
            defaultOptions.afterChange = function (changes, source) {
                console.log(arguments);
            };
     
            defaultOptions.beforeChange = function (changes, source) {
                console.log(arguments);
            };
     
            defaultOptions.beforeValidate = function (value, row, prop, source) {
                console.log(arguments);
            };
     
            defaultOptions.cells = function (row, col, prop) {
                var cellProperty = {};
                cellProperty.language = "fr";
                return cellProperty;
            };
            $.ajax({
                url: "categorie_marques_tab.php",
                type: "get"
     
            }).done(function (data) {
                var errors = data.errors || {};
                var options = $.extend(defaultOptions, data);
     
                $('.tableur_marques').handsontable(options);
                //handsone_marques = $('.tableur_marques').handsontable("getInstance");
               // handsone_marques.updateSettings(options_menu);
            });
     
        })(jQuery);

    Merci encore pour votre aide !

  2. #2
    Membre extrêmement actif
    Avatar de Golgotha
    Homme Profil pro
    Full-stack Web Developer
    Inscrit en
    Août 2007
    Messages
    1 387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Full-stack Web Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2007
    Messages : 1 387
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Qu'est ce que tu veux faire avec cette ligne : $(".menu_tabs li:second").click();
    Si tu veux "binder" l'event il faut une fonction associé non ? .click(function(){ ... });
    Consultant et développeur full-stack spécialiste du Web
    faq jQuery - règles du forum - faqs web

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 103
    Par défaut
    Effectivement je n'en avais pas besoin!

    Du coup j'ai réussi à récupérer les données du tableau et les insérer dans mon tableur.

    J'ai une dernière question, comment updater les données que je change dans mon tableur?

    j'ai construit un bouton Enregistrer qui prendrait ce role.

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
        <div id="page_content_tableur" class="hidden">
            <div id="page_content_marque" >
                <div>
                    <p class="bold">
                        <?php echo langage::write('modifier_le_libelle_des_marques'); ?>
                    </p>
                    <div class="tableur_marques">
                    </div>
                </div>
            </div>
     
           <div class="text_right">
                <input type="submit"  class="green_button"  value="Enregistrer"/>
            </div>

    Dans mon tableau j’avais un bouton modifier que j'obtenais grâce à l'ouverture d'une popup.
    voici le code :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    <?php
     
     
    if (isset($_REQUEST['id'])) {
        $id_marque = $_REQUEST['id']; 
    }    else {
        echo "alerte lib marques_upd_event.php";
    }
     
    $marque = marque::getInstance($id_marque); ?>
    <div style="padding: 20px 10px;">
        <form action="marques.php"  method="POST" id="form_upd_marque">
            <input type="hidden" name="id_marque" value="<?php echo $marque->getId(); ?>" />
            <input type="hidden" name="action" value="update" />
            <table class="default_table" style="width: 400px;">
                <tr>
                    <td style="width: 100px;"><?php echo langage::write('libelle'); ?></td>
                    <td style="width: 250px;"><input type="text" name="libelle" id="libelle" style="width: 220px;" value="<?php echo $marque->getLib(); ?>"></td>
                </tr>
            </table>
            <button class="blue_button" style="margin-left: 120px; margin-top: 15px;"><?php echo langage::write('modifier'); ?></button>  
        </form>
    </div>
     
    <script type="text/javascript">
        $j("#form_upd_marque").submit(function (evt) {
            evt.preventDefault();
            if ($j('#libelle').val().length == 0) {
                lm_alert("<?php echo langage::write("veuillez_renseigner_le_nouveau_libelle_de_la_marque"); ?>");
            } else {
                $j(this).request().done(function (content) {
                    if (content == "NOK") {
                        lm_alert("<?php echo langage::write("la modification_na_pas_pu_etre_effectue"); ?>");
                    } else if (content == "OK") {
                        lm_alert("<?php echo langage::write("la_modification_de_la_marque_a_bien_été_effectué"); ?>");
     
                        $j.navigation.goToPage("marques.php");
                    }
                });
                PopupV4.get("pp_upd_marque").close();
            }
        });
     
    </script>


    Pourriez vous m'aider à faire le lien entre les deux ? Ou dois je faire quelque chose de complètement différent?

  4. #4
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Je vois que la discussion est marquée résolue, mais...

    Je ne connais pas le plugin "handsontable" et je comprends mal vos codes (PHP !).

    Avez-vous suivi la procédure recommandée par la documentation, voir : http://docs.handsontable.com/0.23.0/demo-jquery.html

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 103
    Par défaut
    Erreur de manip pour sujet résolu

    pour ce qui est de la fonction hansontable, voici le code récupéré :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
       public function getHandsontable() {
            $bdd = \PDO_etendu::getInstance();
     
            $params = array();
            $params['columns'] = array();
            $params['colHeaders'] = array();
            $params['colsRefs'] = array();
            $params['outsideClickDeselects'] = true;
            $params['stretchH'] = 'all';
            $params['settings'] = array('contextMenu' => false, 'rowHeaders' => true);
     
     
            $params['data'] = array();
            $params['errors'] = array();
     
            $query = "SELECT ic.* FROM `imports_cellules` ic"
                    . " JOIN `imports_lignes_cibles` ilc USING(`id_ligne_cible`)"
                    . "WHERE ilc.`id_import` = " . $bdd->quote($this->id_import) . " ORDER BY ilc.`id_ligne_cible` ASC, ilc.`ordre` ASC";
            $res = $bdd->query($query);
     
            $data = array();
            while ($cel = $res->fetchObject()) {
                if(!isset($data[$cel->id_ligne_cible])) { $params['data'][$cel->id_ligne_cible] = array(); }
                $data[$cel->id_ligne_cible][$this->mapping[$cel->index_mapping]] = $cel->valeur;
                /*
                if (!empty($tmp->etat)) {
                    $data[intval($tmp->fichier_numero_ligne)]['error'] = $tmp->etat;
                    $params['errors'][intval($tmp->fichier_numero_ligne)][$tmp->ref_colonne] = $tmp->etat;
                } */
            }
     
            $params['data'] = array_values($data);
     
            $colonnes_structures = $this->_import_type->getStructure();
            foreach ($this->mapping as $key_lm) {
                if (isset($colonnes_structures[$key_lm])) {
                    $col = array();
                    $col['data'] = $key_lm;
                    $col['type'] = 'text';
     
                    if (!empty($colonnes_structures[$key_lm]['type'])) {
                        $col['type'] = $colonnes_structures[$key_lm]['type'];
                    }
                    if (!empty($colonnes_structures[$key_lm]['name'])) {
                        $col['libelle'] = $colonnes_structures[$key_lm]['name'];
                    }
                    if (!empty($colonnes_structures[$key_lm]['language'])) {
                        $col['language'] = $colonnes_structures[$key_lm]['language'];
                    }
                    if (!empty($colonnes_structures[$key_lm]['format'])) {
                        $col['format'] = $colonnes_structures[$key_lm]['format'];
                    }
     
                    $params['colHeaders'][] = $col['libelle'];
     
                    $params['columns'][] = $col;
                }
            }
     
            return $params;
        }

Discussions similaires

  1. [AJAX] Mon appel de fonction ne marche pas
    Par guillaumeIOB dans le forum AJAX
    Réponses: 1
    Dernier message: 20/09/2013, 17h20
  2. Mon envoi de mail ne s'effectue pas
    Par ksper92 dans le forum Dynamique
    Réponses: 3
    Dernier message: 12/01/2007, 17h18
  3. [RegEx] mon motif de regex ne passe pas
    Par hansaplast dans le forum Langage
    Réponses: 31
    Dernier message: 19/10/2005, 11h20
  4. [C#] Redirection qui ne s'effectue pas
    Par Ditch dans le forum ASP.NET
    Réponses: 5
    Dernier message: 18/10/2004, 20h35
  5. [sgbd] [CGI + MySQL] Insert ne s'effectuant pas
    Par GLDavid dans le forum SGBD
    Réponses: 3
    Dernier message: 27/07/2004, 02h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo