11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour à toutes et à tous !!

Je recherche un script, ou une aide pour faire un script, permettant la gestion d'un champs composé de plusieurs checkbox ayant chacune une valeur différente, sachant que lors de la validation du formulaire les valeurs de chaque checkbox cochées devront être envoyées...

Cela fait déjà un petit moment que je bloque sur cette problématique... si quelqu'un à une méthode ou une solution merci de faire passer

bon dimanche à tous

MICKAEL
Modifié par Soundboy39 (29 Apr 2012 - 11:00)
Bonjour SoundBoy39,

"SoundBoy39" a écrit :
je recherche un script

de quel script parles-tu ? Du Javascript, du Jquery ... ou du Php ?

"SoundBoy39" a écrit :
la gestion d'un champs composé de plusieurs checkbox

tu parles de boutons à cocher. Il existe une multitude d'exemple sur le net où tu peux déclarer des boutons à cocher et ceci en HTML !

"SoundBoy39" a écrit :
Cela fait déjà un petit moment que je bloque sur cette problématique ...
D'accord, c'est bien. Mais de quelle problématique s'agit-il ?

Je ne comprends pas la nature de ton problème ? Et qu'est-ce que tu veux faire ?

Alsacréations n'est pas là, pour faire ton travail à ta place.
Si tu veux de l'aide, il faut être explicite, sinon nous autre, nous ne sommes pas capable de comprendre ce que tu as en tête.
Et un copier/coller de ton problème, en html, en css et en Javascript, nous serait d'une grande aide !

Merci !
@+
Modifié par Artemus24 (29 Apr 2012 - 16:38)
merci pour vos réponses !!


Désolé pour le manque de précision, en fait je voudrais récuperer la valeur de chaque checkbox cochées pour l'insérer dans une base de données.

a écrit :
Alsacréations n'est pas là, pour faire ton travail à ta place.
Si tu veux de l'aide, il faut être explicite, sinon nous autre, nous ne sommes pas capable de comprendre ce que tu as en tête.
Et un copier/coller de ton problème, en html, en css et en Javascript, nous serait d'une grande aide !


Sachez que cela fais réellement pas mal de temps que j'essaie de résoudre ce problème, j'avoue que oui il m'est déja arriver de poster sans trop chercher (même sans chercher du tout...) mais depuis que je me suis fait envoyé "bouler" à plusieurs reprise sur certain forums, j'essaie toujours de bosser dans mon coin avant de poster, alors des fois j'y arrive (je m'étonne même...) des fois je n' y arrive pas... et là c'est le cas...

Je ne vous ai pas mis de code car j'avais surtout des brouillons cribler d'erreur, à force de refaire et défaire de différente manière... en demandant de l'aide j'avais dans l'espoir de repartir à 0, et pour l'instant je suis satisfait, car j'ai bien avancé...

Ton lien m'a bien aidé G3ronim0, je me suis tellement focalisé sur Javascript que j'en ai oublié ce bon vieux PHP, que je maitrise bien mieux...

Pour l'instant j'ai ce code la qui fonctionne bien :



<h2>ChekBox</h2>

<form method="post" id="form" target="http://localhost/apprentissage/test-pie/index.php" >

   <div id="fruits">
      <label>Fruits</label>
      <br />
      <input type="checkbox" name="fruits[]" value="banane" onclick="setChecked('fruits');" />Banane<br />
      <input type="checkbox" name="fruits[]" value="orange" onclick="setChecked('fruits');" />Orange<br />
      <input type="checkbox" name="fruits[]" value="citron" onclick="setChecked('fruits');" />Citron<br />
      <input type="checkbox" name="fruits[]" value="fraise" onclick="setChecked('fruits');" />Fraise<br />
      <br /><br />
   </div>
   
   <div id="legumes">
      <label>Légumes</label>
      <br />
      <input type="checkbox" name="legumes[]" value="concombre" onclick="setChecked('legumes');"/>Concombre<br />
      <input type="checkbox" name="legumes[]" value="carotte" onclick="setChecked('legumes');" />Carotte<br />
      <input type="checkbox" name="legumes[]" value="tomate" onclick="setChecked('legumes');" />Tomate<br />
      <input type="checkbox" name="legumes[]" value="asperge" onclick="setChecked('legumes');" />Asperge<br />
      <br /><br />
   </div>

   
   <input type="submit" value="Enregistrer" />
   


</form>


<?php

if (isset($_POST['fruits']) AND isset($_POST['legumes']) )
{
   foreach($_POST['fruits'] as $valeur_fruits)
   {
      print $valeur_fruits.'<br />';
   } 
   foreach($_POST['legumes'] as $valeur_legumes)
   {
      print $valeur_legumes.'<br /> ';
   }
}

?>



Jusque là tout va bien, je pourrais insérer chaque valeurs dans ma BDD avec une requete SQL....

Le problème c'est que je suis soumis à la contrainte suivante : je ne veux pas plusieurs entrées par champs, je veux donc regrouper les valeurs en une seul entrée par champs (pour une validation de formulaire : une seul entrée pour "fruits" et une seul pour "légume").

J'ai déjà essayé çà :



<?php

$data_fruits = 
   foreach($_POST['fruits'] as $valeur_fruits)
   {
      print $valeur_fruits.'<br />';
   }
   ;
?>



comme je le fait parfois avec les boucles While... mais ça ne fonctionne pas,
PHP me renvoi une erreur de synthaxe.

alors comment est ce que je peu faire pour créer ma variable $data_fruits qui regroupera les valeurs de chaque case cochées ??
Modifié par Soundboy39 (29 Apr 2012 - 18:19)
Bonjour SoundBoy39,

as-tu pensé à utiliser des champs de ton formulaire qui seraient cachés (hidden) ?

En Javascript, tu regroupes sous la forme d'un tableau de O (pour OUI) et de N (pour NON) ce qui correspond à ce qui est coché ou pas, que tu viens insérer par la suite, dans chaque variables cachés.

Ce que j'aimerai savoir, c'est le format de stockage de cette information que tu désires obtenir en finalité :
Fruits : O N N N
Légumes : N N O O

Bon, je viens de tester le script suivant et cela fonctionne très bien.
Voici le HTML :
<body>
<form onsubmit="return envoi();" method="post" >
<fieldset>
	<legend>Fruits</legend>
	<input type="checkbox" name="fruits"  value="banane"    /><label>Banane</label><br />
	<input type="checkbox" name="fruits"  value="orange"    /><label>Orange</label><br />
	<input type="checkbox" name="fruits"  value="citron"    /><label>Citron</label><br />
	<input type="checkbox" name="fruits"  value="fraise"    /><label>Fraise</label><br />
</fieldset>

<fieldset>
	<legend>L&eacute;gumes</legend>
	<input type="checkbox" name="legumes" value="concombre" /><label>Concombre</label><br />
	<input type="checkbox" name="legumes" value="carotte"   /><label>Carotte</label><br />
	<input type="checkbox" name="legumes" value="tomate"    /><label>Tomate</label><br />
	<input type="checkbox" name="legumes" value="asperge"   /><label>Asperge</label><br />
</fieldset>

<input type="hidden"   name="s1" value="" /><br />
<input type="hidden"   name="s2" value="" /><br />
<input type="submit" value="Enregistrer"/>
</form>
</body>


Et voici le Javascript :
function envoi()
{
	prepare("fruits",  "s1");
	prepare("legumes", "s2");
	return false;
}

function prepare(name1, name2)
{
	var node1 = document.getElementsByName(name1);
	var node2 = document.getElementsByName(name2)[0];
	var text = "";
	for (var i=0; i<node1.length; i++)
	{
		if (node1[i].checked)
			text += "O ";
		else	text += "N ";
	}
	node2.value = text;
}


@+ [/i]
Modifié par Artemus24 (29 Apr 2012 - 21:40)