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 :

Typage / méthode de construction d'array


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 16
    Par défaut Typage / méthode de construction d'array
    Bonjour à toutes et à tous,

    J'ai une fonction sous Wordpress mais c'est du pur PHP qui doit obtenir un array construit de telle façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    array('selectkey1'=>'Select Value1','selectkey2'=>'Select Value2')
    or ceci n'est possible que quand les données sont statiques.
    Je cherche donc à trouver le moyen de le créer en dynamique.
    Voici ce que j'ai essayé mais qui ne fonctionne pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    query_posts("category_name=prods&orderby=title&order=asc&posts_per_page=-1");
    	$my_select_array = array();
     
    	while ( have_posts() ): the_post();
    		$my_select_array[the_title()] = the_title();		
    	endwhile;
    Il semblerait que la méthode de construction que j'utilise ne corresponde pas.

    Savez-vous comment procéder ?

    Merci d'avance.

  2. #2
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    Je connais très peu WP, donc sous réserve.

    Il y a une chose que tu aurais pu dire/confirmer c'est, si la liste des titres ( the_title() ) correspondent bien à celle attendue ?
    (par rapport à : category_name=prods&orderby=title&order=asc&posts_per_page=-1)

    Si c'est le cas, il suffirait de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $my_select_array[] = the_title();
    Une simple boucle foreach() suffira pour lister les titre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    foreach ($my_select_array as $my_select) {
        echo $my_select.'<br />';
    }
    Il n'y a pas lieu de vouloir mettre des clés comme : selectkey1, selectkey2, etc ...


    Malgré tout, si tu tiens à utiliser des clés incrémentées de cette façon, suffirait de rajouter un compteur.
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
     
    $cpt = 1;
    while ( have_posts() ): the_post();
        $my_select_array['selectkey'.$cpt] = the_title();
        $cpt++;
    endwhile;
     
    ?>

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 16
    Par défaut
    Bonjour et merci pour ta réponse, malheureusement ta proposition revient à la mienne et donc ne fonctionne pas.

    voici la fonction tel que dans le plugin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $my_meta->addSelect($prefix.'mySelect',array('selectkey1'=>'Select Value1','selectkey2'=>'Select Value2'),array('name'=> 'My select ', 'std'=> array('selectkey2')));
    et moi je lance la fonction comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $my_meta->addSelect($prefix.'mySelect',$my_select_array,array('name'=> 'My select'));
    Tu vois je passe ma variable contenant le tableau. Avec leur version ma liste déroulante est bien construite, avec ma version je n'ai rien alors que les valeurs à l'intérieur sont bien là et bonnes.

    Une autre idée pour construire cette fonction ?

  4. #4
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    avec ma version je n'ai rien alors que les valeurs à l'intérieur sont bien là et bonnes
    Je ne pige pas.
    C'est quoi "je n'ai rien" ?

    Si tu fais un print_r($my_select_array) dans cette page, juste après la boucle while par exemple, est-ce que le tableau contient les éléments, et si c'est le cas est il structuré comme prévu ?

    As tu observé le code HTML généré, et à l'endroit où ça doit générer le code qu'est-ce que tu obtiens très exactement ?
    Réellement rien ?
    Je suppose que ça doit générer un <select> avec une liste d'options <option>.
    Il y a t-il quelque chose ?

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 16
    Par défaut
    C'est bon j'ai réussi.

    Je pensais que c'était ma façon de construire mon tableau mais en fait ce n'est pas ça, ce sont l'ordre des données + get_the_title() et non the_title().

    Merci pour ton aide

Discussions similaires

  1. Réponses: 0
    Dernier message: 17/03/2012, 20h24
  2. [POO] ajout méthodes sur l'objet Array
    Par kimcharlene dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 24/04/2008, 16h40
  3. Méthode push dans un Array à plusieurs dimensions
    Par thibane dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 02/04/2008, 10h42
  4. méthode de construction d'un site flash
    Par dacom dans le forum Flash
    Réponses: 3
    Dernier message: 26/10/2006, 13h21

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