You are not logged in.

Announcement

 Téléchargez la dernière version stable de GLPI      -     Et vous, que pouvez vous faire pour le projet GLPI ? :  Contribuer
 Download last stable version of GLPI                      -     What can you do for GLPI ? :  Contribute

#1 2010-04-08 10:14:24

gagoul
Member
Registered: 2010-04-08
Posts: 16

Question Ajax

Bonjour,
je suis un stagiaire en Informatique et je dois m'occuper d'améliore GLPI.
Or mon tuteur m'a demandé de mettre le champ contact des formulaires en Autocomplétion, comme sur la version précédente (0.68.3) ou Ajax marche très bien.
J'ai bien sur  activer Ajax et l'autocomplétion dans les configurations. Cela marche pour tout les champs mais l'autocomplétion sur 'contact' contact numero'...ne marche pas.

D'où ma question: d'ou ca peut venir? à quelle table/champs l'autocompletion fait appel?

Merci d'avance

EDIT: On est actuellement sur la version 0.72.1

Last edited by gagoul (2010-04-08 10:15:10)

Offline

#2 2010-04-08 16:37:23

hedi69
Member
Registered: 2010-04-01
Posts: 11

Re: Question Ajax

Paviete tu commence déja à faire le parasite

Offline

#3 2010-04-13 09:28:16

gagoul
Member
Registered: 2010-04-08
Posts: 16

Re: Question Ajax

Bonjour, j'ai une nouvelle question, sachant que j'ai résolu le 1er probleme:

Directement dans le code j'ai fais ca:

// La requète qui suit a permet de récupéré le numéro d'inventaire qui va être généré pour le prochain moniteur
        $query="SELECT * FROM glpi_plugin_geninventorynumber_indexes  WHERE type ='4'";
                    $r=mysql_query($query);
                    while($a=mysql_fetch_object($r))
                    {
                        $num_inv=$a->next_number;
                    }

ensuite dans le champ nom, j'ai mis ca:

//if qui permet de nommer les moniteurs avec le numéro d'inventaire correspondant
            if ($ID>0 && $withtemplate==1){
            autocompletionTextField("name","glpi_monitors","name",$objectName,40,$this->fields["FK_entities"]);
            }
            else if ($ID>0 && $withtemplate==2){
            $query_monitors="SELECT * FROM glpi_monitors WHERE ID ='$ID'";
                    $resultat_monitors=mysql_query($query_monitors);
                    while($b=mysql_fetch_object($resultat_monitors))
                    {
                        $pc_name=$b->name;
                    }
            //$pref=strpos($name,"1");
            $pre=substr($pc_name,0,3);
            $post=strstr($pc_name,"-");
            $postpc= $num_inv.$post;
            $total= $pre.$postpc;
       
            autocompletionTextField("name","glpi_monitors","name",$total,40,$this->fields["FK_entities"]);
           
            }
            else {
            autocompletionTextField("name","glpi_monitors","name",$objectName,40,$this->fields["FK_entities"]);
            }

j'ai donc bien ca qui s'affiche et qui rentre dans la base de données: SCR1173-BRON

le problème c'est que j'ai changé les champs "utilisateurs" et "responsable technique"  Pour responsable j'ai créer une table glpi_drodown_users qui prend en compte le nom des responsables (qui appartiennent à un goupe en fait):

//ancienne requète:
            //dropdownUsersID("tech_num", $this->fields["tech_num"],"interface",1,$this->fields["FK_entities"]);
            // Requète pour vider la table à chaque fois
            $query_truncate="TRUNCATE TABLE glpi_dropdown_users  ";
            $resulat_truncate=mysql_query($query_truncate);
           
            // Ensuite on séléctionne l'id des chefs de groupe dans glpi_users_groups
            $query_select="SELECT * FROM glpi_users_groups ";
            $resultat_select=mysql_query($query_select);
                    while($m=mysql_fetch_object($resultat_select))
                    {
                        $FK_users=$m->FK_users;
                    //On retrouve leurs noms dans la table glpi_users grâce à leur ID
                        $query_users="SELECT * FROM glpi_users WHERE ID= '$FK_users'";
                        $resulat_users=mysql_query($query_users);
                            while($n=mysql_fetch_object($resulat_users))
                            {
                            $users_name=$n->name;
                            //On insert leur nom dans la table que l'on a crée: glpi_dropdown_users
                            $query_insert="INSERT INTO glpi_dropdown_users (name) VALUES ('$users_name')";
                            $resulat_insert=mysql_query($query_insert);
                            }
                    }
            //On affiche sous forme de liste le nom des chefs de groupe
            //dropdownValue("glpi_dropdown_users", "users_name", $this->fields["users_name"]);
           
            autocompletionTextField("name","glpi_dropdown_users","name",$this->fields["name"],40,$this->fields["FK_entities"]);


pour utilisateur j'ai juste fais ca:
autocompletionTextField("name","glpi_users","name",$this->fields["name"],40,$this->fields["FK_entities"]);
a la place de ca:
//dropdownAllUsers("FK_users", $this->fields["FK_users"],1,$this->fields["FK_entities"]);


Voila mon problème: quand je suis dans le formulaire tout marche,y compris ajax, mais lorsque je valide j'ai le nom que j'ai mis en utilisateur qui apparait à la place du nom du moniteur et à la place du responsable technique!..

Pouvez vous 'aidez svp smile

Offline

#4 2010-04-13 09:58:08

hedi69
Member
Registered: 2010-04-01
Posts: 11

Re: Question Ajax

Parasite

Offline

#5 2010-04-13 10:02:30

gagoul
Member
Registered: 2010-04-08
Posts: 16

Re: Question Ajax

hedi arrete stpet bosse^^

Offline

#6 2010-04-13 15:19:24

gagoul
Member
Registered: 2010-04-08
Posts: 16

Re: Question Ajax

apparament il y a un conflit entre ces 3 instructions, que puis-je faire?
autocompletionTextField("name","glpi_dropdown_users","name",$this->fields["name"],40,$this->fields["FK_entities"]);
autocompletionTextField("name","glpi_users","name",$this->fields["name"],40,$this->fields["FK_entities"]);
autocompletionTextField("name","glpi_monitors","name",$total,40,$this->fields["FK_entities"]);

Offline

#7 2010-04-13 15:43:21

gagoul
Member
Registered: 2010-04-08
Posts: 16

Re: Question Ajax

au mieux je fais sa:
dropdownValue("glpi_users", "users", $this->fields["users"]);
a la place du dernier l'affichage est bon mais rien ne s'inscrit dans la base de données

Offline

#8 2010-04-13 16:03:07

hedi69
Member
Registered: 2010-04-01
Posts: 11

Re: Question Ajax

Pave je crois que personne veut te répondre

Offline

#9 2010-04-14 09:27:37

gagoul
Member
Registered: 2010-04-08
Posts: 16

Re: Question Ajax

j'ai réussi a trouver la réponse:

dropdownValue("glpi_dropdown_technical", "tech_num", $this->fields["tech_num"],1,$this->fields["FK_entities"]);
pour responsable technique

dropdownValue("glpi_users", "FK_users", $this->fields["FK_users"],1,$this->fields["FK_entities"]);
pour utilisateur

en espérant que ca serve à quelqu'un smile

Offline

Board footer

Powered by FluxBB