Page 1 sur 1

fonction qui décoche des checkbox

Posté : 20 juil. 2007, 14:40
par béka
Bonjour voilà une petite fonction qui devrait décocher des checkboxs

Code : Tout sélectionner

function AfficheReset() { var critInputs = document.criteria.elements; for ( var i = 0 ; i < critInputs.length ; i++ ) { myInput = critInputs[i]; if ( myInput.type == 'checkbox' && myInput.checked ) { //traiter seulement les checkbox cochées myInput.checked = false; } // window.document.criteria[i].checkbox[i].checked = false; } document.getElementById('ajax').innerHTML = ""; //vider le div de reponse avant de lancer la recherche }
et voici le code du formulaire :
<?echo "<form name='criteria' method='post' id='criteria'>"; 

echo "<table align='center' width='90%' bgcolor='#EEEEEE' style='border: 1px solid #808080;'>";
echo "<tr><td colspan='5'><strong>".CHOOSE_CRITERIA."</strong></td></tr><tr>";
foreach($cat_criteria as $cat){
  $name_cat = $cat->getAttribute('name');
  $id_cat = $cat->getAttribute('id');
  echo "<td valign='top' align='left'><br><strong>".$name_cat." : </strong><br><br>";
  foreach ($cat->childNodes as $criteria)
  {
    if ($criteria->nodeType != XML_ELEMENT_NODE) continue;
    if ($criteria->tagName == 'criteria')
    {
      $name_criteria = $criteria->getAttribute('name');
      $id_criteria = $criteria->getAttribute('id');  
      if ( in_array($id_cat.'/'.$id_criteria, $_SESSION['cat_crit']) ) {
      echo "<ul><input type='checkbox' id='crit[]' name='crit[]' value='$id_cat/$id_criteria' CHECKED>$name_criteria</input></ul>"; }
      else {
      echo "<ul><input type='checkbox' id='crit[]' name='crit[]' value='$id_cat/$id_criteria'>$name_criteria</input></ul>"; }
    }
  }
}
echo "</td></tr></table><br>";

?>
<div align="center"><div class="btns"><input type="button" onClick="AfficheResult();" value="<? echo BUTTON_SEARCH; ?>" />&nbsp;&nbsp;<input type="reset" onClick="AfficheReset();" value="<? echo BUTTON_RESET; ?>"></div></div>
</form>

Posté : 20 juil. 2007, 16:23
par Truc
Résolu ?
Une solution à proposer ?

Posté : 20 juil. 2007, 17:16
par béka
en fait je mettais checked = false à une checkbox qui avait la'ttribut CHECKED dans la balise tant qu'une variable de session existait.
La solution étaiot donc non pas d epasser par le javascript pour desélectionner toutes les checkbox mais de détruire la variable de session pour ne plus qu'elles soient cochées.

avec ce bouton
<input type="button" onClick="AfficheReset(); document.location.href='search-engine.php?reset'" value="<? echo BUTTON_RESET; ?>">
ce qui provoque ca
if ( isset($_GET['reset']) ){
  unset($_SESSION['cat_crit']);
  $_SESSION['cat_crit'] = array();
  header ('Location: search-engine.php'); 
}
car j'avais ca
if ( in_array($id_cat.'/'.$id_criteria, $_SESSION['cat_crit']) ) {
      echo "<ul><input type='checkbox' id='crit[]' name='crit[]' value='$id_cat/$id_criteria' CHECKED>$name_criteria</input></ul>"; }
      else {
      echo "<ul><input type='checkbox' id='crit[]' name='crit[]' value='$id_cat/$id_criteria'>$name_criteria</input></ul>"; }