checkbox alles auswählen

hikeda_ya

Erfahrenes Mitglied
wie bekomm ich eine checkbox hin die alle checkboxen aktiviert

sprich wenn ich 20 Ergebnisse habe und alle übernehmen möchte - aber nicht jedes einzelne Checkbox anklicken will.
 
Wie tobees Link schon erahnen laesst funktioniert das ueber JavaScript. Im entsprechenden Forum findest Du dazu sicher auch was mit Hilfe der Suchfunktion.

Diesen Thread werd ich an dieser Stelle dann auch gleich mal in's JavaScript-Forum treten da er dort an der richtigen Stelle ist.
Okay, dann eben nicht, Michael war schneller. :D
 
irgend was passt da noch nicht.

er markiert noch gar nichts

PHP:
<?php


echo '<head>

<script type="text/javascript">
  <!--
function selectGroup(objCheck, strID){
  var arrChilds = document.getElementById(strID).childNodes;
  var blnCheck = objCheck.checked;

  for(var i=0; i<arrChilds.length; i++){
    if(arrChilds[i].type == "checkbox"){
      arrChilds[i].checked = (blnCheck)? true : false;
    }
  }
}
 //-->

</head>';


echo '<form action="wlw_produktsuche2.php" method="post">';
       
     echo '<br><br /><br />';   
      
    $i=1;  
          
  @$res = sql("SELECT *, produkte.Produkte
FROM adressen
left join produkte on adressen.firmen_id = produkte.firmen_id
where produkte like '%".$_REQUEST['var']."%' and Land like '".$_REQUEST['lkz']."' 
order by Postleitzahl");



			

      echo '<table border=1>
            <tr>
            <td>Auswahl</td>
            <td>Firmen-ID</td>
            <td>Firma</td>
            <td>Straße</td>
            <td>Land</td>
            <td>Postleitzahl</td>
            <td>Ort</td>
            </tr>';
                    
        while ($row=mssql_fetch_array($res)){

echo '<form action="" method="post">
    <fieldset id="Firmen_ID">
      <legend>
        Erste Gruppe
        alle markieren <input type="checkbox" name="all" value="all" onclick="selectGroup(this, Firmen_ID)" />
      ';


       echo '<tr>
              <td><input type="checkbox" name="Firmen_ID"  value="'.$row['Firmen_ID'].'" \></td>
							<td>'.$row['Firmen_ID'].'</td>
              <td>'.$row['Firma'].'</td>
              <td>'.$row['Straße'].'</td>
              <td>'.$row['Land'].'</td>
              <td>'.$row['Postleitzahl'].'</td>
              <td>'.$row['Ort'].'</td>
              <td>'.$row['Produkte'].'</td>
              
              </tr>';
              $i++;}  
       echo '</table> </legend>
    </fieldset>
  ';       
         
             
             
    echo '<input type="submit" value="in DB speichern"></form></form>';

die Abfragen stimmen soweit - nur halt kann ich nicht alle checkboxen auf einmal ansprechen
 
Sven Mintel hat gesagt.:
Das Problem ist, dass die checkboxen keine direkten Kindknoten des Fieldset sind.

Hier mal eine andere Funktion:
Code:
function checken(form,pattern,type)
{
  for(i=0;i<document.forms[form].elements.length;++i)
    {
      elm=document.forms[form].elements[i];
      
      if(elm.type=='checkbox' 
          && elm.name.match(new RegExp(pattern)))
        {
          switch(type)
            {
              case 'check':
                attr=true;
                  break;
              case 'uncheck':
                attr=false;
                  break;
              case 'toggle':
                attr=(elm.checked)?false:true;
                  break;
            }
          elm.checked=attr;
        }
    }
}

Die Funktion erwartet 3 Parameter:
  1. Name des Formulars
  2. Regulärer Ausdruck, der auf den Namen der Checkboxen zutrifft...in diesem Fall wäre dies ^sm\\\d+$
  3. Schlüsselwort(die Funktion kann 3 verschiedene Sachen machen)
    • check
      alle auswählen

    • uncheck
      nix auswählen

    • toggle
      Auswahl umkehren
alle 3 Parameter müssen in Anführungszeichen gesetzt sein.


ich habe seine Funktion eingebaut - doch beim anklicken passiert - nix

PHP:
<?php


echo '<head>

<script type="text/javascript">
  <!--
function checken(form,pattern,type)
{
  for(i=0;i<document.forms[form].elements.length;++i)
    {
      elm=document.forms[form].elements[i];
      
      if(elm.type=="checkbox" 
          && elm.name.match(new RegExp(pattern)))
        {
          switch(type)
            {
              case "check":
                attr=true;
                  break;
              case "uncheck":
                attr=false;
                  break;
              case "toggle":
                attr=(elm.checked)?false:true;
                  break;
            }
          elm.checked=attr;
        }
    }
}
 //-->

</head>';






   
   error_reporting(E_ALL);
   
   
  include 'inc/wlw.php';

            
function sql( $query ) {
	global $DEBUG;

	$res	= mssql_query( $query );
	
	

	return $res;
} // function
         

  
  
                echo '<form action="'.@$php_self.'" method="post">';
            echo "  Produkt: ";
            echo '
            &nbsp;<input type="text" name="var"   /> <br />
            Land: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="text" name="lkz"   />
            <input type="hidden" name="action" value="save" />
            <input type="submit" name="send" value="send" /> 
            </form>'; 



//      var_dump($_REQUEST) ;   
echo '<br><br /><br />';   

@$results =mssql_query("SELECT COUNT(*) as anzahl FROM adressen 
left join produkte on adressen.firmen_id = produkte.firmen_id
where produkte like '%".$_REQUEST['var']."%' and Land like '".$_REQUEST['lkz']."'  ");

 while ($row=mssql_fetch_assoc($results)){

echo "Anzahl = ";
echo $row['anzahl'];
echo '<br />';
echo "Suchbegriff: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;".@$_REQUEST['var']." <br />
      Land: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;".@$_REQUEST['lkz']."";
}







echo '<form action="wlw_produktsuche2.php" method="post">';
       
     echo '<br><br /><br />';   
      
    $i=1;  
          
  @$res = sql("SELECT *, produkte.Produkte
FROM adressen
left join produkte on adressen.firmen_id = produkte.firmen_id
where produkte like '%".$_REQUEST['var']."%' and Land like '".$_REQUEST['lkz']."' 
order by Postleitzahl");


echo '<form name="formularName">
  <a onclick="checken("formularName","Firmen_ID","check")"   style="cursor:pointer">alle ausw&auml;hlen</a><br>
  <a onclick="checken("formularName","Firmen_ID","uncheck")" style="cursor:pointer">nix ausw&auml;hlen</a><br>
  <a onclick="checken("formularName","Firmen_ID","toggle")"   style="cursor:pointer">Auswahl umkehren</a><br>';
			

      echo '<table border=1>
            <tr>
            <td>Auswahl</td>
            <td>Firmen-ID</td>
            <td>Firma</td>
            <td>Straße</td>
            <td>Land</td>
            <td>Postleitzahl</td>
            <td>Ort</td>
            </tr> ';
                    
        while ($row=mssql_fetch_array($res)){



       echo '<tr>
              <td><input type="checkbox" name="Firmen_ID"  value="'.$row['Firmen_ID'].'" \></td>
							<td>'.$row['Firmen_ID'].'</td>
              <td>'.$row['Firma'].'</td>
              <td>'.$row['Straße'].'</td>
              <td>'.$row['Land'].'</td>
              <td>'.$row['Postleitzahl'].'</td>
              <td>'.$row['Ort'].'</td>
              <td>'.$row['Produkte'].'</td>
              
              </tr>';
              $i++;}  
       echo '</table> 
  ';       
         
             
             
    echo '<input type="submit" value="in DB speichern"></form></form>';

mssql_close();





?>
 
habe noch folgendes Problem

wenn ich bei dem Namen="Firmen_ID die [] wegnehme - funktioniert das selektieren aller
nur brauch ich das wiederumg um auf der Folgeseite eine foreach schleife laufen zu lassen.

auswahl-Seite

PHP:
<td><input type="checkbox" name="Firmen_ID[]"  value="'.$row['Firmen_ID'].'" \></td>
							<td>'.$row['Firmen_ID'].'</td>
              <td>'.$row['Firma'].'</td>
              <td>'.$row['Straße'].'</td>
              <td>'.$row['Land'].'</td>
              <td>'.$row['Postleitzahl'].'</td>
              <td>'.$row['Ort'].'</td>
              <td>'.$row['Produkte'].'</td>
              
              </tr>';
              $i++;}  
       echo '</table> <input type="button" value=" alle "
onClick="this.value=check(this.form.Firmen_ID[])">


Verarbeitungsseite

PHP:
foreach ($_REQUEST['Firmen_ID'] as $key => $value) 
  {
$$key = $value;
 
$ins = mssql_query("insert into auswahl (Firmen_ID) values ( $value) ");

ohne die [] kommt die Fehlermeldung

Warning: Invalid argument supplied for foreach() in C:\Inetpub\php\wlw_produktsuche2.php on line 22
 
Zurück