question a propos de plxUtils=>printSelect

ppmtppmt Member
Je viens de me rendre compte qu'au lieu de coder mes boites de selection en HTML je peux utiliser les fonction interne de PluXml!!!

J'utilise donc printSelect pour me creer une liste de selectionmais je n'arrive pas a faire en sorte qu'aucune valeur ne soit choisit par default et que le boite soit donc vide.

Est-ce que c'est possible de le faire?

Réponses

  • YannicYannic Member
    ppmt a écrit:
    Je viens de me rendre compte qu'au lieu de coder mes boites de selection en HTML je peux utiliser les fonction interne de PluXml!!!

    J'utilise donc printSelect pour me creer une liste de selectionmais je n'arrive pas a faire en sorte qu'aucune valeur ne soit choisit par default et que le boite soit donc vide.

    Est-ce que c'est possible de le faire?
    Salut ppmt :)
    Quelque chose comme:
    <?php plxUtils::printSelect("test",array(''=>' ','ValueA'=>'A','ValueB'=>'B'),'C',false) ?>
    

    En faisant un vide au début du tableau ( array )

    Ou sinon comme on le fait souvent en y mettant un petit texte :
    <?php plxUtils::printSelect("test",array(''=>'--- Select an option ---','ValueA'=>'A','ValueB'=>'B'),'',false) ?>
    

    Buster/NGINX/PHP7/PluXml5.8

  • ppmtppmt Member
    Ah ben oui j'aurais pu y penser en effet!

    Merci
  • ppmtppmt Member
    Puisque tu es la Yannick je vais en profiter pour te demander une autre question (les autres peuvent repondre aussi bien sur ;) )

    Dans le plugin plxMyShop il y a une methode pour faire en sorte de rendre certains champ obligatoire. Pour cela on rajoute required="required" dans le champ en question (select ou input)

    Comment puis-je faire la meme chose en utilisant printSelect?
  • YannicYannic Member
    mai 2017 modifié
    Pour printSelect tu ne peux pas d'autant que ta valeur vide sera considéré comme bonne à l'envoie et il n'y rien de prévu pour cela dans cette fonction.
    C'est à toi de contrôler que la valeur correspond bien à une des sélection attendue à la reception du formulaire.
    ( cela peux "peut-être" se faire via un code javascript soit au moment de la validation du formulaire d'aller vérifier si un choix à bien été fait ou non mais cela complique un peu plus le code )

    Avec printInput, tu as la valeur extra qui te permet de rajouter, mais avec printSelect non

    Buster/NGINX/PHP7/PluXml5.8

  • ppmtppmt Member
    C'est dommage. Je voulais privilégier les fonctions de pluxml :(

    Je vais donc plutot utilser un bon vieux <select> ...</select>
  • YannicYannic Member
    ppmt a écrit:
    C'est dommage. Je voulais privilégier les fonctions de pluxml :(

    Je vais donc plutot utilser un bon vieux <select> ...</select>

    C'est vrai qu'une option extra ou required à printArea et printSelect aurais été utile.

    Buster/NGINX/PHP7/PluXml5.8

  • ppmtppmt Member
    Peut-etre que @Stephane passera par la et rajoutera ca pour une prochaine version :)
  • SudwebdesignSudwebdesign Member
    mai 2017 modifié
    Salut à vous,

    Si si c'est possible et il est même possible d'y placer du javascript :)
    En utilisant une petite feinte que j'utilis(ais)e en utilisant le paramètre class avant que l'option extra existe.
    [== PHP ==]
    <?php plxUtils::printSelect("test",array(''=>'Choose','ValA'=>'A','ValB'=>'B'),$selVal,false,'classOrNot" required="required') ?>
    
    il suffit d'oublié la dernière double quote " et c'est bon.

    Notre temps est la seule monnaie vraie ;)

    Site, Dépôt, framagit, MyShop, Factux

    #mozinor président

  • bazooka07bazooka07 PluXml Lead Developer, Moderator
    mai 2017 modifié
    Oui tu peux utiliser Javascript pour modifier la page après chargement :
    [== PHP ==]
    <?php
    plxUtils::printSelect(
    	'test',
    	array(
    		''=>'Choose',
    		'ValA'=>'A',
    		'ValB'=>'B'
    	),
    	$selVal
    );
    ?>
    <script type="text/javascript">
    	var target = document.getElementById('id_test');
    	if(target != null) {
    		target.setAttribute('required', 'required');
    		target.classList.add('classOrNot');
    	}
    </script>
    
    On peut aussi rajouter un bout de script sur le formulaire pour empêcher qu'il soit envoyé si l'option "choose" a été choisie;
  • ppmtppmt Member
    Ah ben je vais essayer ca alors..

    Question bete au passage...le code required="required" ca fait partie de PluXml ou plxMyShop?
  • YannicYannic Member
    Sudwebdesign a écrit:
    Salut à vous,

    Si si c'est possible et il est même possible d'y placer du javascript :)
    En utilisant une petite feinte que j'utilis(ais)e en utilisant le paramètre class avant que l'option extra existe.
    'classOrNot" required="required'
    
    il suffit d'oublié la dernière double quote " et c'est bon.

    Joli hack Sudwebdesign :)
    Me fait vieux, car je n'y ai pas pensé xD
    ppmt a écrit:
    Ah ben je vais essayer ca alors..

    Question bete au passage...le code required="required" ca fait partie de PluXml ou plxMyShop?

    Ni l'un, ni l'autre c'est une sorte de vilain exploit utilisé à bon escient.

    Buster/NGINX/PHP7/PluXml5.8

  • bazooka07bazooka07 PluXml Lead Developer, Moderator
  • ppmtppmt Member
    Le petit hack de subwebdesign marche tres bien !

    Par contre il y a t'il un hack equivalent pour changer le id dans la function printInput ?

    Oui bien est-ce que je dois ce coup ci passez par le code javascript de baxooka pour changer le id?
  • bazooka07bazooka07 PluXml Lead Developer, Moderator
    Quel est l'intérêt de changer le "id" ?

    S'il y a un "id" avec le printInput, il y a une grande chance qu'il y ait à côté un label avec la valeur de l'attribut for égale à celle de id.
    Le id peut aussi être utilisé dans la feuille de style CSS.

    Sinon ça peut se faire.
  • ppmtppmt Member
    Euh oui en effet tu as raison. En y regardant de plus pres j'ai modifier le javascript pour me caler sur l'id generer par printInput et ca marche :rolleyes:

    Je n'ai vraiment pas la fibre du codage en moi des fois...

    Merci a tous pour votre patience
Connectez-vous ou Inscrivez-vous pour répondre.