begin process at 2012 02 09 13:12:01
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Formulaires

 > CHECKBOX PERSONNALISABLE

CHECKBOX PERSONNALISABLE


 Information sur la source

Note :
9 / 10 - par 5 personnes
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Formulaires Classé sous :checkbox, personnaliser, formulaire, personnalisable, checkboxs Niveau :Débutant Date de création :08/09/2005 Date de mise à jour :30/11/2005 08:38:57 Vu / téléchargé :17 152 / 941

Auteur : f6xara

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note


 Description

Cliquez pour voir la capture en taille normale
Voici une petite fonction qui vous permettra de substitué facilement des checkboxs de formulaire par des images clickables.

Rien de bien extraordinaire, mais si celà peut interessé du monde.

PS: c'est le 1er code que je propose :)

Source

  • <?php
  • /* appel de la fonction
  • echo checkbox('checkbox1', array('nom'=>'Mon checkbox', 'checked'=>'oui'));
  • echo checkbox('checkbox2', array('nom'=>'<img src="Mon_image" />'));
  • */
  • function checkbox($value, $param=''){
  • // image du checkbox
  • $image_checked = '<img src=checked.gif alt=Selectionne />';
  • // image du checkbox coché
  • $image_non_checked = '<img src=non_checked.gif alt=Non selectionne />';
  • // si dans les paramètre on a renseigné que le checkbox était coché
  • if(isset($param['checked']) && ($param['checked']!='')) {
  • $checked = 'checked';
  • $monimage = $image_checked;
  • }else{
  • // si le checkbox n est pas coché
  • $checked = '';
  • $monimage = $image_non_checked;
  • }
  • $retour = '<input type="checkbox" name="'.$value.'" id="'.$value.'" value="ok" '.$checked.' style="display:none;" />'; // notre checkbox
  • // lien sur le clique du checkbox ou de l image ou du texte
  • $retour .= '<a href="javascript:;" onClick="if(document.getElementById(\''.$value.'\').checked==true) { document.getElementById(\''.$value.'-statut\').innerHTML = \''.$image_non_checked.'\'; }else{ document.getElementById(\''.$value.'-statut\').innerHTML = \''.$image_checked.'\'; } document.getElementById(\''.$value.'\').checked = !document.getElementById(\''.$value.'\').checked;">';
  • // on affiche le nom ou l'image renseigné
  • $retour .= '<div id="'.$value.'-statut" style="display:inline" >';
  • if(isset($param['nom'])){
  • $retour_fin = '</div><div style="display:inline"> '.$param['nom'].'</div></a>';
  • }else{
  • $retour_fin ='</a>';
  • }
  • return $retour.$monimage.$retour_fin;
  • }
  • ?>
<?php
/* appel de la fonction 

echo checkbox('checkbox1', array('nom'=>'Mon checkbox', 'checked'=>'oui'));
echo checkbox('checkbox2', array('nom'=>'<img src="Mon_image" />'));

*/

function checkbox($value, $param=''){
	// image du checkbox 
	$image_checked = '<img src=checked.gif alt=Selectionne  />';
	// image du checkbox coché
	$image_non_checked = '<img src=non_checked.gif alt=Non selectionne />';
	
	// si dans les paramètre on a renseigné que le checkbox était coché 
	if(isset($param['checked']) && ($param['checked']!='')) { 
		$checked = 'checked';
		$monimage = $image_checked;
	}else{
		// si le checkbox n est pas coché
		$checked = '';
		$monimage = $image_non_checked;
	}
					
	$retour  = '<input type="checkbox" name="'.$value.'" id="'.$value.'" value="ok" '.$checked.' style="display:none;"  />'; // notre checkbox
	
	// lien sur le clique du checkbox ou de l image ou du texte
	$retour .= '<a href="javascript:;" onClick="if(document.getElementById(\''.$value.'\').checked==true) { document.getElementById(\''.$value.'-statut\').innerHTML = \''.$image_non_checked.'\'; }else{ document.getElementById(\''.$value.'-statut\').innerHTML = \''.$image_checked.'\'; } document.getElementById(\''.$value.'\').checked = !document.getElementById(\''.$value.'\').checked;">';
	
	// on affiche le nom ou l'image renseigné
	$retour .= '<div id="'.$value.'-statut" style="display:inline" >';
	
	if(isset($param['nom'])){
		$retour_fin = '</div><div style="display:inline"> '.$param['nom'].'</div></a>';
	}else{
		$retour_fin ='</a>';
	}
	return $retour.$monimage.$retour_fin;
}
?>

 Conclusion

En espérant que celà vous serve autant qu'à moi.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

08 septembre 2005 15:55:21 :
Ajout des images :) (c'est quand meme mieux avec)
09 septembre 2005 09:34:25 :
Correction d'une ptite erreure (variable non executer entre simple quotes)
09 septembre 2005 09:45:18 :
.
30 novembre 2005 08:38:58 :
Mise à jour des mots pour la recherche

 Sources de la même categorie

Source avec Zip VÉRIFICATION DE FORMULAIRE EN PHP par psonic13
Source avec Zip Source avec une capture CALENDRIER RÉSERVATION POUR CHAMBRES D'HÔTES EN PHP MYSQL par oallais
Source avec Zip Source avec une capture UPLOADEUR DE FICHIERS MULTIPLES V1 par cod57
FORM, ORM POUR FORMULAIRE par choy
Source avec Zip Source avec une capture LOGIN SHA1 + CRÉATION UTILISATEUR par aventurier19

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture FORM TO MAIL AVEC PROTECTION PAR TOKEN ET CAPTCHA CONTRÔLES ... par cod57
Source avec Zip VÉRIFICATION DE FORMULAIRE EN PHP par psonic13
Source avec Zip Source avec une capture FORMULAIRE VERS COURRIEL BASIQUE AVEC CONTRÔLE CAPTCHA ANTI ... par cod57
FORM, ORM POUR FORMULAIRE par choy
Source avec Zip Source avec une capture FORMULAIRE DE CHOIX MULTI-CONTACT VALIDE XHTML 1.0 TRANSITIO... par aventurier19

Commentaires et avis

Commentaire de wizard512 le 10/09/2005 11:06:31

10/10

Bien ta source et ton site :)

Commentaire de J_G le 12/09/2005 18:50:14

Salut,

pas mal... non, BIEN ;)

Mais :
au lieu d'inclure ton input-image dans une ancre (<a>...</a>) et d'utiliser href="javascript:...". Je te conseil d'utiliser directement les évènements onclick, ondblclick, etc. de la balise input.

De plus, je me demande si ce que tu fais n'est pas faisable en feuille de style (*.css). A confirmer!

6/10
Continue bien,

Commentaire de f6xara le 19/09/2005 11:53:25

J_G oui mais non je suis pas d'accord ;)

La balise input est en hidden, on ne la voit pas car elle est remplacée par une image. Donc on ne peut pas cliquer dessus.

Donc on doit cliquer sur une image ou un texte (voir plus) et pour ces deux éléments, la facon que je trouvait la plus logique est avec <a href...>

:)

Commentaire de J_G le 19/09/2005 19:01:59

<?php
/*
SALUT f6xara,

Bien sûr que si on peut cliquer sur une image !!!
Tout les éléments HTML acceptent l'action "onclick".

Vois donc comment j'aurais fait ton code...
(Ne le prend surtout pas mal)
*/

// Pourquoi une classe ?
// Ainsi, on peut créer plus sieur type de checkboxes personnalisées
// (DEs bleux, des rouges, ...) et les ajouter selon ses gouts
class checkbox {
    // Source des images
    var $img_check;
    var $img_uncheck;

    // On instancie la classe en déclarant les images. Ainsi elle seront répétées
    function checkbox($check_img_src, $uncheck_img_src) {
        $this->img_check = $check_img_src;
        $this->img_uncheck = $uncheck_img_src;
    }
    
    // Fonction pour ajouter une checkbox
    //          * $name : attributs 'name' et 'id' de l'éléments HTML checkbox qui sera créé
    //          * $checked : état initial de la checkbox (attribut 'checked')
    //          * $value : attribut 'value' de l'éléments HTML checkbox qui sera créé
    function add($name, $checked=false, $value='OK') {
        // prédéfinition des attributs de la checkbox
        $check = $checked ? 'checked=checked' : '';
        $img = $checked ? $this->img_check : $this->img_uncheck;

        // Préformatage du code javascript
        $JS = "if(document.getElementById('$name').checked==true) {" ;
        $JS.=     "this.src = '$this->img_uncheck';" ; // on modifie juste l'image affichée
        $JS.= "} else { " ;
        $JS.=     "this.src = '$this->img_check';" ;
        $JS.= "}" ;
              // inversion de l'attribut checked de la "vraie" checkbox
        $JS.= "document.getElementById('$name').checked = !document.getElementById('$name').checked;" ;


        // Preformatage de la sortie :
        //              la "vraie" checkbox (cachée)
        $out = "<input type=\"checkbox\" name=\"$name\" id=\"$name\" value=\"$value\" $check style=\"display:none;\" />";
        //              l'image qui remplace la checkbox
        $out.= "<img src=\"$img\" onclick=\"$JS\" />";

        return $out; // et on envoi la sauce !
    }
}

$myCheckbox = new checkbox('checked.gif','non_checked.gif');
?>

Et voici comment tu l'intègres dans ton code HTML : <br />
<br />
<?=$myCheckbox->add('travail',true)?> Je souhaite partir à la retraite le jour de mes 25 ans<br />
<?=$myCheckbox->add('retraite')?> Je souhaite travailler toute ma vie<br />
<br />
Et voilà, demain j'essaye une solution "tout CSS" ;)<br />
<br />
A+

Commentaire de hexenez le 16/02/2008 21:06:40

pour remplacer par des images, je propose plus simple et plus bref:

function draw_image_checkbox($name,$img1,$img2,$valOff,$valOn,$checked=false){
  $value = $checked==true ? $valOn : $valOff;
  $firstImg = $checked==true ? $img2 : $img1;
  return '<input type="hidden" name="'.$name.'" value="'.$value.'" id="'.$name.'_HF"/>'.'<img src="'.$firstImg.'" border="0" onclick="javascript:if(document.getElementById(\''.$name.'_HF\').value==\''.$valOff.'\'){this.src=\''.$img2.'\';document.getElementById(\''.$name.'_HF\').value=\''.$valOn.'\';}else{this.src=\''.$img1.'\';document.getElementById(\''.$name.'_HF\').value=\''.$valOff.'\';}"/>';
}

Commentaire de lanner le 10/12/2008 18:42:30 9/10

c'est super tous les post mais au final on fait quoi pour changer les checkbox ? :) (par la meme occasion pour les boutons radio serait pas mal aussi^^)

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

pb de checkbox dans un formulaire [ par Bowlest ] BowlestJ'ai un formulaire avec des checkbox, que je POST dans une Base de Donnée MYSQL, voila un exemple: &lt;input name="kind" type="c checkbox à cocher alternativement [ par arnold002 ] Bonjour,J'ai un formulaire avec un champ texte et 3 checkbox.Je voudrai que l'utilisateur ne puisse cocher qu'une checkbox à la fois.Si checkbox 1 est Checkbox [ par VLN ] Bonjour,J'ai un petit souci de formulaire et voudrais une petite aide :)j'aimerai que lorsque l'on coche une case du formulaire, celui ci affiche une Checkbox [ par raven44 ] Bonjour, j'aimerai pouvoir afficher une ou plusieurs checkbox coch&#233; dans mon formulaire mais je n'y arrive pas : Lors de ma premi&#232;re venu s Selectionner tous les checkbox d'un formulaire [ par mattarius ] Bonjour, j'aimerais savoir s'il existe une fonction simple en php qui permet par le simple clic sur un bouton ou un lien de cocher ou d&#233;cocher to Formulaire * Checkbox = Cocher ou pas [ par spike911 ] Bonjours, ma questions est un peu débutante, mais j'essaye d'apprendre héhé! J'utilise un input type="checkbox" dans mon formulaire et je veu qui reto UPDATE et checkbox [ par fabrice88 ] Bonjour, j'ai fait un formulaire de mise à jour de ma base de données.Pour modifier une données "texte" j'ai mis cette ligne de commande &lt;input nam passage valeur checkbox [ par gatita_dev ] Bonjour, je connais rien en php puisque je travaille avec asp.net mais je suis obligé de faire la maintenance d'un site en php, mon problème est je pe checkbox à récupérer [ par sibel ] BonjourJ'essaye de récupérer tous mes checkbox dans un formulaire, mais je n'y arrive pasJ'ai vu des conseils sur le forum :&lt;input type="checkbox" Formulaire avec check box [ par eltyty ] Bonjour à tous,alors je suis en train de réaliser un projet dans lequel je dois mettre en place un système de questionnaires dynamiques.Tout se passai


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,842 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales