Forum Clubic

Aide pour lé checkbox(case à coché),php,javascript

Bonjour,je suis en plein projet et je galère pour les checkboxs donc les cases à coché:

<? include("connect.inc") ?>
<html>
<link rel="stylesheet" href="sitebn.css" type="text/css">
<head>
<body>
<META HTTP-EQUIV="Refresh" CONTENT="20";>
<script language="javascript" type="text/javascript"> 
////////////////////////////////////////////////////////////////////////////////////// 
// function checkall() 
// cette fonction s'execute lorsqu'on clique sur la checkbox principale 
// elle passe en revue les checkbox et les coche si necessaire 
// la checkbox d'indice 0 est la checkbox principale 
// rem si ovus ajouter des element de formulaire, il faudra mofifier le script 
// car l'instruction : temp = document.main.elements.length; comptabilise 
// tous les elements et pas uniquement les checkbox... 
////////////////////////////////////////////////////////////////////////////////////// 
function checkall() 
{ 
   // compte tous les éléments du formulaire en numérotant chronologiquement 
   temp = document.main.elements.length; 
   if (document.main.elements[0].checked) 
   { // si la case est cochée 
     for (i=1; i < temp; i++) 
     { // on coche toutes les autres 
         document.main.elements[i].checked=1; 
     } 
   } 
   else 
   { 
      for (i=1; i < temp; i++) 
     { // on décoche tout 
         document.main.elements[i].checked=0; 
     } 
   } 
} 
////////////////////////////////////////////////////////////////////////////////////// 
// function checkone() 
// cette fonction s'execute lorsqu'on coche ou décoche une checkbox qcq 
// elle fait le compte des checkbox cochée pour savoir s'il faut décocher 
// ou cocher la checkbox principale... 
////////////////////////////////////////////////////////////////////////////////////// 
function checkone() 
{ 
   m=0; // initialisation du nombre de cases cochées 
   temp = document.main.elements.length; 
   for (i=1; i < temp; i++) 
   { // on commence à 1 pour ne pas prendre en compte la checkbox principale 
      if (document.main.elements[i].checked) 
     { // si la checkbox courante est cochée, on comptabilise 
     m++; 
     } 
   } 
   if (document.main.elements[0].checked) 
   { // si la checkbox principale est cochée, on la décoche 
      document.main.elements[0].checked=0; 
   } 
   else 
   { // dans le cas contraire, on vérifie que toutes les checkbox sont cochées 
      if (m == (temp-1)) document.main.elements[0].checked=1; 
   } 
} 
////////////////////////////////////////////////////////////////////////////////////// 
// function verifselection() 
// cette fonction s'execute qd on clique sur le bouton supprimer 
// elle vérifie que l'on a bien selectionné un objet au moins... 
////////////////////////////////////////////////////////////////////////////////////// 
function verifselection() 
{ 
   n=0; 
   temp = document.main.elements.length; 
   for (i=1; i< temp;i++) 
   { 
      if (document.main.elements[i].checked) 
     { 
     n=n+1; 
     } 
   } 
   if (n != 0) 
   { 
      if (confirm("Êtes-vous sûr de vouloir supprimer ce(s) objet(s)?")) 
      { 
         document.main.submit(); 
      } 
   } 
   else 
   { 
      alert("Veuillez sélectionner au moins un objet !"); 
   } 
} 
</SCRIPT> 

<form name="liste.php" action="unepers.php" method="post">
<center><font color='red'><h1><i>Liste des réservations et gestion de la base de donnée</i></h1></center>

<a href="effacertoutroulage.php"><br><font color='yellow'>Cliquez ici pour effacer toutes les réservations de votre liste</a></font></p>

<table class="frm" align="center">
<tr><th bgcolor='#99CCFF' width="1%">Numéro</th><th bgcolor='#99CCFF' width="3%">Grade</th><th bgcolor='#99CCFF' width="15%">Nom</th><th bgcolor='#99CCFF' width="15%">Prénom</th><th bgcolor='#99CCFF' width="5%">Téléphone</th><th bgcolor='#99CCFF' width="20%">Motif</th><th bgcolor='#99CCFF' width="2%">Jour</th><th bgcolor='#99CCFF' width="2%">Mois</th><th bgcolor='#99CCFF' width="4%">Année</th><th bgcolor='#99CCFF' width="3%">Heure début</th><th bgcolor='#99CCFF' width="2%">Minutes début</th><th bgcolor='#99CCFF' width="3%">Heure fin</th><th bgcolor='#99CCFF' width="3%">Minutes fin</th><th bgcolor='#99CCFF' width="10%">Tout sélectionner<CENTER><INPUT TYPE='checkbox' value='$ligne->id' name='check_all' onclick="checkall()"></CENTER>/// ICI J'AI MIS MON CHECKBOX QUI COCHE OU DECOCHE TOUT

</th></tr>

<?
$resultat = mysql_query("select `id` , `grade` , `nom` , `prenom` , `telephone` , `motif` , `From_day` , `From_month` , `From_year` , `heuredebut` , `minutesdebut` , `heurefin` , `minutesfin` from roulage");
while($ligne= mysql_fetch_object($resultat))

{
	echo "<tr onclick=\ onmouseover=\"this.className='over'\" onmouseout=\"this.className='out'\" class=\"out\">
	<td><font color='yellow'><center>$ligne->id</center></font></td>
	<td><font color='yellow'><center>$ligne->grade</center></font></td>
	<td><font color='yellow'><center>$ligne->nom</center></font></td>
	<td><font color='yellow'><center>$ligne->prenom</center></font></td>
	<td><font color='yellow'><center>$ligne->telephone</center></font></td>
	<td><font color='yellow'><center>$ligne->motif</center></font></td>
	<td><font color='yellow'>$ligne->From_day</font></td>
	<td><font color='yellow'>$ligne->From_month</font></td>
	<td><font color='yellow'>$ligne->From_year</font></td>
	<td><font color='yellow'><right>$ligne->heuredebut</right></font></td>
	<td><font color='yellow'><left>$ligne->minutesdebut</left></font></td>
	<td><font color='yellow'>$ligne->heurefin</font></td>
	<td><font color='yellow'>$ligne->minutesfin</font></td>
	<td><CENTER><INPUT TYPE='checkbox' value='$ligne->id' name='check[]' onclick='checkone()'/></CENTER></td>////////ICI J4AI MON CHECK BOX QUI SE RAJOUTE FUR ET A MESURE QU4UN PERSONNE SENREGISTRE PROBLEME AVEC name='check[]'
	</tr>";
}

?>
</table>
</head>
</body>
</p><input type="submit" NAME="submit" value="Supprimer" action="unepers.php" href="java script:verifselection();"></p>
</form>
</html>

ensuite lors de la suppression des mes lignes via les checkboxs sa me fait sa:

<html>
<body>
<head>
<link rel="stylesheet" href="sitebn.css" type="text/css">
<font color='yellow'>
<?php
 $bdd="bntoulon";
 mysql_connect("localhost","root","");
 mysql_select_db($bdd);


if(isset($_POST['submit']))
    {
          $id=$_POST['check'];  
          for ($i = 0; $i < count($id); $i++)
             {
                  $req = "DELETE FROM roulage WHERE id  = '$id[$i]'";
                 mysql_query ($req) or die(mysql_error());
             }
    }
?>
</p>
<a href="liste.php"><font color='yellow'>Revenir à l'accueil</a></font></p>
</head>
</body>
</html>

Explication du probleme;
Quand je coche et decoche sa marche mais sa ne se supprime pas et quand j’arrive a supprimé je n’arrive pa a coché et a decoché.
Merci de m’aider ou de me proposé un code beaucoup plus imple merci

Modification de mon code beaucoup plus SIMPLE.
Je continue mon poste nouvelle mise a jour:

Code :


<? include("connect.inc") ?>
<html>
<link rel="stylesheet" href="sitebn.css" type="text/css">
<head>
<body>
<META HTTP-EQUIV="Refresh" CONTENT="20";>
<script>
//checkbox ou une liste de checkbox.
function selectall(cas,choix){
  //test si on a plusieur ligne
  if(choix.length>0){
    if (cas.checked){
      for (var i=0; i<choix.length;i++){
        choix[i].checked=true
      }
    }
    else{
      for (var i=0; i<choix.length;i++){
        choix[i].checked=false
      }
    }
  }
  else{
    if (cas.checked){
      choix.checked=true
    }
    else{
      choix.checked=false
    }
  }
}</script>

<form name="monform" action="unepers.php" method="post">
<center><font color='red'><h1><i>Liste des réservations et gestion de la base de donnée</i></h1></center>

<a href="effacertoutroulage.php"><br><font color='yellow'>Cliquez ici pour effacer toutes les réservations de votre liste</a></font></p>

<table class="frm" align="center">
<tr><th bgcolor='#99CCFF' width="1%">Numéro</th><th bgcolor='#99CCFF' width="3%">Grade</th><th bgcolor='#99CCFF' width="15%">Nom</th><th bgcolor='#99CCFF' width="15%">Prénom</th><th bgcolor='#99CCFF' width="5%">Téléphone</th><th bgcolor='#99CCFF' width="20%">Motif</th><th bgcolor='#99CCFF' width="2%">Jour</th><th bgcolor='#99CCFF' width="2%">Mois</th><th bgcolor='#99CCFF' width="4%">Année</th><th bgcolor='#99CCFF' width="3%">Heure début</th><th bgcolor='#99CCFF' width="2%">Minutes début</th><th bgcolor='#99CCFF' width="3%">Heure fin</th><th bgcolor='#99CCFF' width="3%">Minutes fin</th><th bgcolor='#99CCFF' width="10%">Tout sélectionner<CENTER><input type="checkbox" name="all" onclick="selectall(document.monform.all,document.monform.choix)"></CENTER>

</th></tr>

<?
$resultat = mysql_query("select `id` , `grade` , `nom` , `prenom` , `telephone` , `motif` , `From_day` , `From_month` , `From_year` , `heuredebut` , `minutesdebut` , `heurefin` , `minutesfin` from roulage");
while($ligne= mysql_fetch_object($resultat))

{
	echo "<tr onclick=\ onmouseover=\"this.className='over'\" onmouseout=\"this.className='out'\" class=\"out\">
	<td><font color='yellow'><center>$ligne->id</center></font></td>
	<td><font color='yellow'><center>$ligne->grade</center></font></td>
	<td><font color='yellow'><center>$ligne->nom</center></font></td>
	<td><font color='yellow'><center>$ligne->prenom</center></font></td>
	<td><font color='yellow'><center>$ligne->telephone</center></font></td>
	<td><font color='yellow'><center>$ligne->motif</center></font></td>
	<td><font color='yellow'>$ligne->From_day</font></td>
	<td><font color='yellow'>$ligne->From_month</font></td>
	<td><font color='yellow'>$ligne->From_year</font></td>
	<td><font color='yellow'><right>$ligne->heuredebut</right></font></td>
	<td><font color='yellow'><left>$ligne->minutesdebut</left></font></td>
	<td><font color='yellow'>$ligne->heurefin</font></td>
	<td><font color='yellow'>$ligne->minutesfin</font></td>
	<td><CENTER><INPUT TYPE='checkbox' value='$ligne->id' name='choix[]'/></CENTER></td>
	</tr>";
}

?>
</table>
</head>
</body>
</p><input type="submit" NAME="submit" value="Supprimer" action="unepers.php"></p>
</form>
</html>

Ajout d’un script 7eme ligne cocher et decocher a case.
Dans mon tableau (l39)derniere ligne création de la case à coché a côté de “tout sélectionner” <input type=“checkbox” name=“all” onclick=“selectall(document.monform.all,document.monform.choix)”> ceci est la checkbox maitre

Ensuite dans mon php j’ai pour code checkbox
Code :


<INPUT TYPE='checkbox' value='$ligne->id' name='choix[]'/>

tout ceci m’emene sur une page qui me confirme l’effacement:
voici son code :

Code :


<html>
<body>
<head>
<link rel="stylesheet" href="sitebn.css" type="text/css">
<font color='yellow'>
<?php
 $bdd="bntoulon";
 mysql_connect("localhost","root","");
 mysql_select_db($bdd);


if(isset($_POST['submit']))
    {
          $id=$_POST['choix'];  
          for ($i = 0; $i < count($id); $i++)
             {
                  $req = "DELETE FROM roulage WHERE id  = '$id[$i]'";
                 mysql_query ($req) or die(mysql_error());
             }
    }
?>
</p>
<a href="liste.php"><font color='yellow'>Revenir à l'accueil</a></font></p>
</head>
</body>
</html>

Lisez bien:
Logiquement le code que je vous ai donné me permet:
-de coché et decoché ainsi que supprimé les cases coché.

La mon code me permet de coché une case et de la supprimé(comme si je n’avais rien mis)

Pour tout cocher et decoché il faut que j’enleve mes [] de mon “name” dans ma ligne <INPUT TYPE=‘checkbox’ value=’$ligne->id’ name=‘choix[]’/>
qui se trouve dans mon code php mais le problème c’est que je ne peux pas supprimer.

Si je laisse les [] dans mon “name” je ne peux pas tout sélectionner mais seulement sélectionner une case après l’autre et ensuite supprimé.

J’ai essayé de mettre des [] après tous les mots finissant par choix mais sa ne marche pas.

Voilà j’espere que vous pouvez m’aider

Désolé, ça n’a rien à voir, mais la curiosité me pique, ça fait quoi une balise <HTML#62; par rapport à un <HTML> classique :??:

EDIT:
:lol: j’ai trouvé ma réponse tout seul
Mais pourquoi mettre le code en ascii :??:

Y’a des navigateur qui interprète mal ? Mais dans ce cas, pourquoi juste la fermeture de balise :??:

Problème résolu merci quand meme pour ceux qui ont regardé ma page :slight_smile: