J'ai un selectbox dans lequel les options proviennent d'un module. Voici son code.
<div id="dropdown">
<form action="" method="post" name="country"><label for="country"></label>
<select id="country" name="country" onchange="this.form.submit()">
<?php
$rows = Array('UAE', 'SA', 'OMAN');
foreach($rows as $row){
if($row == $session->get('cont')){
$isSelected = ' selected="selected"';
}
else {
$isSelected = '';
}
echo "<option ".$isSelected.">".$row."</option>";
}
?>
</select>
</form>
</div>
Maintenant, je veux montrer des drapeaux de pays avec chaque option. S'il vous plaît suggérer s'il y a un plugin Java-script que je peux utiliser ou tout autre moyen simple.
Avez-vous essayé de rechercher country flag drop down jquery
ou similaire? Personnellement, j’ai utilisé de nombreuses options ce plugin jQuery plus tôt. Vous devriez pouvoir l'intégrer à votre code existant en modifiant l'instruction echo
.
En gros, vous devez charger les fichiers .js et .css inclus et vous assurer que jQuery est inclus dans votre modèle.
//include scripts in header. (Add jQuery if needed.)
JHtml::_('script', JUri::base() . 'path/to/your/files/jquery.dd.min.js');
JHtml::_('stylesheet', JUri::base() . 'path/to/your/files/dd.css', array(), true);
JHtml::_('stylesheet', JUri::base() . 'path/to/your/files/flags.css', array(), true);
//initiate the script
$doc = JFactory::getDocument();
$doc->addScriptDeclaration('
jQuery(document).ready(function($) {
$("#country").msDropdown();
})
');
Maintenant modifiez votre déclaration echo
en quelque chose comme ceci:
echo "<option ".$isSelected." value='".$row."' data-image='/path/to/your/files/blank.gif' data-imagecss='flag ".strtolower($row)."' data-title='".$row."'>".$row."</option>;
Vous devrez peut-être un peu modifier le code pour que cela fonctionne, je ne l'ai pas testé, mais cela en vaut la peine.
Une autre alternative (peut-être plus facile) est le plug-in Country Picker jQuery , mais elle utilise un <div>
Elément au lieu d’une liste déroulante normale, et vous devriez éditer votre boucle PHP.
Bonne chance.