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

Langage PHP Discussion :

Supprimer indi�age tableau


Sujet :

Langage PHP

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    54
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 54
    Par d�faut Supprimer indi�age tableau
    Bonjour � tous,

    Je travaille sous Delphi For Php, avec un Bdd FireBird.

    J'ai un probl�me de remplissage d'un TreeView, le composant est par d�faut implent� dans le logiciel. Seul probl�me � l'horizon il faut lui passer un tableau.

    Comme mon treeview est dynamique, je me doit donc de changer la string comprise dans le tableau en fonction des r�sultats des requ�tes.

    Alors que j'arrive � former une chaine de caract�re qui serait conforme au mod�le d�crit par la documentation, je n'arrive pas � contenir la cha�ne de caract�re propre dans le tableau sans l'indi�age automatique.

    Cela me donne donc :

    Array ( [0] => array('Caption'=>'Mairie 1','Items'=>array(array('Caption'=>'Ecole M1'),array('Caption'=>'Hotel de Ville'))); )
    A la place de :

    array('Caption'=>'Mairie 1','Items'=>array(array('Caption'=>'Ecole M1'),array('Caption'=>'Hotel de Ville')));
    JE fais la convertion de la chaine de caract�re au tableau � l'aide de la fonction str_split, ou je metla longueur de la chaine de caract�re et celle-ci en param�tres.

    Si quelqu'un aurait une id�e pour enlever l'indi�age du tableau, et si possible l'array devant.

    Sinon comment faire pour modifier une string comprise dans un tableau ?

    Merci d'avance de votre aide qui me sera grandement utille.
    Amicalement, descurai

  2. #2
    Mod�rateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    D�tails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par d�faut
    Si $tableau vaut
    Array ( [0] => array('Caption'=>'Mairie 1','Items'=>array(array('Caption'=>'Ecole M1'),array('Caption'=>'Hotel de Ville'))); )
    Et que tu veux
    array('Caption'=>'Mairie 1','Items'=>array(array('Caption'=>'Ecole M1'),array('Caption'=>'Hotel de Ville')));
    Tu veux tout simplement $tableau[0]
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    54
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 54
    Par d�faut
    J' yai pens� mais � vrai dire �a ne marche pas, l'appel � la fonction TreeView se fait de cette mani�re :

    $this->TreeView1->Items=$items;
    $items �tant le tableau.

    Si je met $items [0] ou $a dans mon exemple il ne m'affiche plus du tout le composant.

    Il faut au tableau $items quelquechose de la forme :

    $items[]=array ('Caption'=>'Item1','Items'=>array(array('Caption'=>'SubItem1',array('Caption'=>'SubItem2'))));
    Est ce possible d'avoir la longueur des chaines de caract�res, de les tronquer, de rajouter des morceaux, m�me si la chaine de caract�res est dans un tableau ? J'ai essay� mais sans r�sultats �vidents, si vous avez des id�es, je suis preneur.

  4. #4
    Mod�rateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    D�tails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par d�faut
    Le tableau $items que tu me montres la donnerait exactement le tableau que tu dis ne pas vouloir.

    A mon avis tu te m�prends sur quelque chose : un tableau sans indice n'existe pas.
    array('toto', 'titi') signifie array(0=>'toto', 1=>'titi')
    $items[] = "toto"; te donnera array(0=>"toto");
    Je ne comprends pas non plus bien ce que tu veux dire avec tes decoupages de chaines.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    54
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 54
    Par d�faut
    Voila l'exemple de base qui fonctionne :

    $items=array();

    $items[]=array ('Caption'=>'Item1','Items'=>array(array('Caption'=>'SubItem1',array('Caption'=>'SubItem2'))));

    $this->TreeView1->Items=$items;
    J'en ai donc d�duit que le treeview faisait r�f�rence au tableau.

    Le truc c'est que je n'arrive pas � �crire sauf si je l'�cris en dur, le tableau.
    Pourtant quand je fais un �cho, de la string que j'int�gre dans le tableau, elle est correcte.

    Quand � ce qui est du tronquage des cha�nes, en fait je construits ma string au fur et a mesure des requ�tes, donc au d�part , je fais comme s'il n'y avait que le site.

    Puis s'il y a un b�timent je dois tronquer la premi�re chaine pour lui enlever le ); de fin et rajouter le reste du tableau correspondant � l'ajout du b�timent d�pendant du site.


    Pour ce qui est de l'affichage, j'ai concoct� l'exemple rien qu'avec le site, cela correspond � :

    $items[$a]=array('Caption'=>$site[$i]);
    Et ceci fonctionne avec $this->TreeView1->Items=$items; par la suite.

    mais lorsque je passe le tableau � l'autre fonction et quand je le reprend par la suite, il m'affiche juste array. JE n'arrive pas � travailler sue la cha�ne de caract�re enti�re c'est pourquoi je passe par une chaine de caract�re proprement dit. De mani�re a pouvoir la tronquer et l'ajuster facilement.

  6. #6
    Mod�rateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    D�tails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par d�faut
    Je suis en train de comprendre que tu construis ton tableau en recomposant une chaine de caractere ...

    Pourrais-tu nous montrer le code ou tu construis ton $item ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    54
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 54
    Par d�faut
    Je viens de me rendre compte que mon syst�me n'�tait pas bon. Vu l'interpr�tation faites via l'explorateur.

    Le code g�n�r� lors de l'appel des sites est ainsi :

    Array ( [0] => Array ( [Caption] => Mairie 1 ) [1] => Array ( [Caption] => Usine 1 ) [2] => Array ( [Caption] => Hopital 1 ) )
    Et celui g�n�r� lors d'un noeud est ainsi :

    Array ( [0] => Array ( [Caption] => Item1 [Items] => Array (

    [0] => Array ( [Caption] => SubItem1 )
    [1] => Array ( [Caption] => SubItem2 ) ) ) )

    Mon probl�me maintenant est que je n'arrive pas � ajouter un n�ud
    en partant du tableau pr�c�dant.


    Il faudrait qu'a cette phrase :

    $items[$a]=array('Caption'=>$site[$i]);
    Je rajoute la suite pour le noeud, j'ai essay� un :

    $var1=$var1.'Items' =>array(array('Caption'=>$var2));
    Mais �videmment cela ne fonctionne pas l'interpr�teur ne veut m�me pas me prendre le =>.

    Il faudrait que j'arrive a concat�ner la chaine suivante au tableau pr�c�dent.

    JE te remercie d�j� du d�vouement dont tu fais preuve, et je pense que tu va faire comme moi donc je te souhaite un bon app�tit. A peluche

  8. #8
    Membre chevronn�
    Profil pro
    Responsable de service informatique
    Inscrit en
    Septembre 2004
    Messages
    352
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activit� : Responsable de service informatique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 352
    Par d�faut
    Je pense que t'as du mal sur le fonctionnement des Array en PHP.

    Pour rajouter un nouveau "SubItem", faut faire en prenant le cas o� $mylist est mon tableau et $ind (=0) mon indice que je connais :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    $mylist[$ind]['Items'][] = array('Caption' => 'SubItem3');
    Pour rajouter un nouveau "Caption", on fait :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    $mylist[] = array('Caption' => 'Item2');
    Pour rajouter un nouveau "Caption" avec des "SubItems" :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    $mylist[] = array(
      array('Caption' => 'Item3'),
      array(
        array( 'Caption' => 'SubItem1'),
        array( 'Caption' => 'SubItem2'),
      )
    );
    Le r�sultat attendu va �tre :
    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
    Array
    (
        [0] => Array
            (
                [0] => Array
                    (
                        [Caption] => Item3
                    )
     
                [1] => Array
                    (
                        [0] => Array
                            (
                                [Caption] => SubItem1
                            )
     
                        [1] => Array
                            (
                                [Caption] => SubItem2
                            )
     
                    )
     
            )
     
    )

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    54
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 54
    Par d�faut
    Je ne te te le fais pas dire, je gal�re un peu la.

    JE te remercie de toutes ses pr�cisions , je vais tester tout �a, encore merci pour ton d�vouement au n�ophyte que je suis. Bonne apr�s midi
    You're the ^^

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    54
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 54
    Par d�faut
    Je vais encore devoir vous emb�tez, j'ai un petit probl�me.

    La liste des sites s'affiche correctement mais d�s que je fais intervenir la fonction qui remplit les b�timents, la boucle ne fait que le premier tour.

    Mon Code :

    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
    function TreeView1BeforeShow($sender, $params)
           {
           //Initalisation de la variable i et du tableau
           $i=0;
           $a=0;
           $items = array();
           $itemsa = array();
     
           //Requête SQL
           $this->Query1->close();
           $da = $this->Datasource1->DataSet;
           $this->Query1->SQL = 'SELECT NOM_SITE FROM SITE ';
           $this->Query1->open();
           $da->first();
     
           //BOUCLE SUR LE SITE
              while(!$da->EOF)
                {
                $site=$da->NOM_SITE;
     
                    $items[$a]=array('Caption'=>$site[$i]);
                    //print_r ($items);
     
                    $itemsb[$a]=$this->stringBatiment($items[$a], $site);
                    print_r($itemsb);
     
                    $i++;
                    $da->next();
                    $a++;
               }
           $this->TreeView1->Items=$itemsb;
           }
    Serait ce possible que ce soit la r�ponse qui fasse crasher la premi�re boucle ?

    Merci d'avance, amicalement descurai.

  11. #11
    Membre chevronn�
    Profil pro
    Responsable de service informatique
    Inscrit en
    Septembre 2004
    Messages
    352
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activit� : Responsable de service informatique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 352
    Par d�faut
    Utilise la balise CODE (l'image avec un #) :

    Delphi et TreeView, jamais utilis�s. Mais le mieux ne serait-il pas :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    while($da->next()) {
        // Mes instructions
    }
    ?

    Je doute que ta fonction sait ce qu'est l'objet $this :
    Il faudrait que $this soit pass� en param�tre � ta fonction ou stock� dans une variable globale car toutes variables d�clar�s � l'ext�rieur d'une fonction ne sont pas connues � l'int�rieur de celle-ci.

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    54
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 54
    Par d�faut
    J'ai essay� de faire comme tu l'a montr� la boucle while, mais sans succ�s, il n'y a rien qui s'affiche.

    Quand au $this, je pense qu'il est reconnu car il arrive bien � me faire la requ�te et � m'afficher le premier site, avec les deux premeirs b�timents qui lui correspondent.

    Je pense que �a doit �tre un erreur b�te de construction de l'algo mais je vois pas. Merci quand m�me pour ces indications.

Discussions similaires

  1. Supprimer un tableau
    Par dabertch dans le forum JBuilder
    R�ponses: 1
    Dernier message: 23/05/2008, 14h17
  2. supprimer un tableau powerpoint / condition "Existe"
    Par ouioui_cmoi dans le forum Macros et VBA Excel
    R�ponses: 2
    Dernier message: 04/04/2008, 17h22
  3. supprimer ligne tableau si A est vide
    Par flyhb dans le forum Macros et VBA Excel
    R�ponses: 4
    Dernier message: 17/03/2008, 23h30
  4. Supprimer un tableau Powerpoint (PPT) depuis Excel VBA
    Par pontoise dans le forum Macros et VBA Excel
    R�ponses: 2
    Dernier message: 02/03/2008, 19h01
  5. [Tableaux] d�butant : supprimer ligne tableau
    Par samplaid dans le forum Langage
    R�ponses: 2
    Dernier message: 27/03/2006, 10h39

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