Me voila de retour, Grâce à votre aide j'ai pu bien avancer :)
cependant j'ai un petit soucis (encore..)

ancien post : PHP Form Builder Class avec un CSV
j'avais mis cette même question en fin de sujet mais ce n'est pas vraiment en rapport.

Donc je résume rapidement:
dans le formulaire j'utilise donc l’élément Select permettant d'afficher ces fameuses liste csv. Cela marche très bien encore merci à nebjix :)

mais cela s'affiche de cette façon:

ce n'est pas aussi pratique, ni même la façon correcte dont devrait s'afficher ce style d’élément car dans la doc officielle cela indique cet affichage:

Aurez vous une idée d'où cela pourrait bien provenir ?

j'ai regardé les styles css: je n'ai rien trouvé de concluant, je peux changer la police, la couleur etc mais rien n'indique que cela doit s'afficher ainsi.

j'ai testé les autres style d’éléments genre Radio Buttons: / Checkboxes et cela s'affiche correctement.
Il n'y a vraiment maintenant plus que cet élément select qui fait des siennes.

merci

12 réponses


Glaived
Réponse acceptée

soit ton bootstrap/css est vérolé, dans le sens ou il à pas le même effet que moi, soit c'est ton php builder ^^

Noblus
Auteur
Réponse acceptée

effectivement tu as vu juste, j'ai mis par dessus une nouvelle install de pfbc... (d'ailleur je comprends toujours pas pourquoi le mec à utilisé ce truc).

et maintenant cela fonctionne

Merci de ton aide Glaived !

$options = array("Option #1", "Option #2", "Option #3");

include("PFBC/Form.php");
$form = new Form("form-elements");
$form->addElement(new Element_Select("Select:", "Select", $options));

C'est bien ce que tu à fait ? tu peu nous montrer le rendue html du select ?

Noblus
Auteur

Alors voila un exemple de code

//debut code CSV modeles
            if ($handle = fopen(dirname( __FILE__ ).DIRECTORY_SEPARATOR.'csv/modeles.csv', 'r')); {
                $modeles = array();
                while ($data = fgetcsv($handle, 0, ';')) {
                    $champs = count($data);

                    for($i = 0; $i < $champs; $i++) {
                        if (isset($data$i]) && $data$i] != "") {
                            $modeles] = $data$i];
                        }
                    }
                }
                fclose($handle);
            }
            // Fin code CSV modeles
            $formInfoAnnonce->addElement(new Element\Textarea("Description du bateau :", "descriptifs"));
            //marques avec fichier csv
            $formInfoAnnonce->addElement(new Element\Select("Marque du bateau :", "marque", $marques, array("required" => 1)));
            $formInfoAnnonce->addElement(new Element\Select("Modèle du bateau :", "modele", $modeles, array("required" => 1)));
            $formInfoAnnonce->addElement(new Element\Textbox("Lieu du bateau :", "visibilite"));
            $formInfoAnnonce->addElement(new Element\YesNo("Vendu avec la place ?", "venduavecplaceport", array("required" => 1) ));

et voila le rendu html:

est ce bien cela que tu voulais voir ?

nop uniquement le rendue du html, désactive tes css pour voir ce que donne le rendue natif

Noblus
Auteur

ha oui et bien voila le rendu natif avec la feuille de style désactivée.

Par exemple pour le type de bateau, qui est aussi un select j'ai mis ce code là:

$formInfoAnnonce->addElement(new Element\Select("Type de bateau :", "type", array("Bateau a moteur", "Voilier"), array("required" => 1)));

et le problème est le même, donc ce n'est pas le fait que ce soit un cvs qui entraine ce changement...

d'accord mais pourais tu donner le code html ? et uniquement html, l'html qui est retourner après traitement php ?

Noblus
Auteur

le code source de la page en gros :) désole pour mon incompréhension: en voici une partie donc .

<body>
    <nav class="navbar navbar-default" role="navigation"></nav>
    <div class="container">
        <style type="text/css"></style>
        <form id="info_annonce" class="form-horizontal" method="post" action="index.php?action=ajoutBateau" role="form">
            <fieldset>
                <legend>
                    Etape 1 - Informations de l'annonce : 
                </legend>
                <div class="form-group">
                    <label class="col-md-4 control-label" for="info_annonce-element-1">
                        <span class="required">
                            * 
                        </span>
                        Type de bateau :
                    </label>
                    <div class="col-md-7">
                        <select id="info_annonce-element-1" class="form-control" multiple="" required="" name="type">
                            <option value="Bateau a moteur">
                                Bateau a moteur
                            </option>
                            <option value="Voilier">
                                Voilier
                            </option>
                        </select>
                    </div>
                </div>
                <div class="form-group">
                    <label class="col-md-4 control-label" for="info_annonce-element-2">
                        <span class="required">
                            * 
                        </span>
                        Prix du bateau :
                    </label>
                    <div class="col-md-7">
                        <input id="info_annonce-element-2" class="form-control" type="number" required="" placeholder="En euros" min="0" name="prix_public"></input>
                    </div>
                </div>
                <div class="form-group">
                    <label class="col-md-4 control-label" for="info_annonce-element-3">
                        <span class="required">
                            * 
                        </span>
                        Tva :
                    </label>
                    <div class="col-md-7">
                        <label class="radio">
                            <input id="info_annonce-element-3-0" type="radio" value="ht" required="" name="tva"></input>
                             Hors Taxes 
                        </label>
                        <label class="radio">
                            <input id="info_annonce-element-3-1" type="radio" value="ttc" required="" name="tva"></input>
                             Toutes taxes comprises 
                        </label>
                    </div>
                </div>
                <div class="form-group">
                    <label class="col-md-4 control-label" for="info_annonce-element-4">
                        Description du bateau :
                    </label>
                    <div class="col-md-7">
                        <textarea id="info_annonce-element-4" class="form-control" name="descriptifs" rows="5"></textarea>
                    </div>
                </div>
                <div class="form-group">
                    <label class="col-md-4 control-label" for="info_annonce-element-5">
                        <span class="required">
                            * 
                        </span>
                        Marque du bateau :
                    </label>
                    <div class="col-md-7">
                        <select id="info_annonce-element-5" class="form-control" multiple="" required="" name="marque">
                            <option value="3C Composite">
                                3C Composite
                            </option>
                            <option value="3D Tender">
                                3D Tender
                            </option>
                            <option value="4XC"></option>
                            <option value="A.P.S Aubin"></option>
                            <option value="Aacap"></option>
                            <option value="AB Inflatables"></option>
                            <option value="AB Marine"></option>
                            <option value="AB Yachts"></option>

j'ai coupé apres car la liste est longue

la fin :

<option value="Alphaboat"></option>
                            <option value="Alphena Yachts"></option>
                            <option value="Alson"></option>
                            <option value="Altair"></option>
                            <option value="Altamar"></option>
                            Certains nœuds ont été masqués. 
                        </select>
                    </div>
                </div>
                <div class="form-group">
                    <label class="col-md-4 control-label" for="info_annonce-element-6">
                        <span class="required">
                            * 
                        </span>
                        Modèle du bateau :
                    </label>
                    <div class="col-md-7"></div>
                </div>
                <div class="form-group"></div>
                <div class="form-group"></div>
                <div class="form-actions"></div>
            </fieldset>
        </form>
        <script type="text/javascript"></script>
    </div>
    <script src="./ressources/js/jquery.js"></script>
    <script src="./ressources/js/bootstrap.js"></script>
    <script src="./ressources/js/dynatable.js"></script>
    <script src="./ressources/js/sortArray.js"></script>
</body>

Voila ce que me donne mon inspecteur de code, je ne sais pas si cela pourra t'aider

ton problème viens de l'attribu multiple sur les select

<select id="info_annonce-element-1" class="form-control" multiple="" required="" name="type">

Faut que tu réussisse à le tej' ^^

C'est étrange car par défaut il est pas en multiple ^^

Noblus
Auteur

ha d'accord merci d'avoir ciblé le problème !
comme j'ai récupéré ce site codé par une autre personne je suis un peu dans un yaourt :)

pourquoi avoir mis un tel attribu ? je vais en tout cas creuser et essayer comme tu dis de le tej ! car cela donne un rendu pourri :)

merci en tout cas

bah tu passe par la class pour generer ton html, donc c'est étrange, essaie de mettre à jour ton install de php build trucmuche, car par defaut ce comportement ne ce fait pas

Noblus
Auteur

effectivement dans le css de bootstarp il y à: [code]select[multiple], select[size] { height: auto; }[/code] cependant si je le tej : voila le rendu avec css [img]http://www.startpoker.fr/html3.png[/img] donc c'est tout écrase mais si je désactive les css j'obtiens exactement le même rendu que l'image dans le post précédent sans css il doit donc y avoir plusieurs effets en cascades... je vous tiens au courant