<?php if(isset($_GET['nr'])) { 
 if($_SERVER['REQUEST_METHOD']=='POST') { 
 
     $nr = $_GET['nr'];
    $klas = $_GET['klas'];
    $cat= $_GET['cat'];
                  $query = mysql_query("SELECT * FROM materiaal WHERE rubriek='" . $cat . "'") or die(mysql_error());
                $obj = mysql_fetch_object($query);
            echo'<BR><div class="blok">';
                    echo'Nr. ';
                    echo $nr;
                    echo' van klas ';
                    echo $klas;
                    echo' heeft het volgende materiaal mee: ';
                    echo'<BR>';
            foreach($_POST['gekozen'] as $obj->Materiaal_ID) {
                    echo '<b>';
                    echo  $voorwerpen[$obj->Materiaal_ID];
                    echo '</b><br></div><br>';            }
        
    } 
    }
?>
<form method="post">
<center>
  <table width="376">
    <tr>
      <th width="76" bgcolor="#666666" scope="col">Voorwerp</th>
      <th width="44" bgcolor="#666666" scope="col">Aantal</th>
      <?php if(isset($_GET['nr'])) { ?> <th width="150" bgcolor="#666666" scope="col">Kiezen</th><?php } ?>
    </tr>
    <?php 
        $cat= $_GET['cat'];
  $query = mysql_query("SELECT * FROM materiaal WHERE rubriek='" . $cat . "'") or die(mysql_error());
    while ($obj = mysql_fetch_object($query)) {
                ?>
    <tr>
      <td><center>
       <?php echo $obj->Omschrijving; ?>
      </center></td>
      <td><center>
        <?php echo $obj->Aantal_beschikbaar; ?>
      </center></td>
     <?php if(isset($_GET['nr'])) { ?> <td><center>
        <input type="submit" value="<?php echo $obj->Materiaal_ID; ?>" name="gekozen[<?php echo $obj->Materiaal_ID; ?>]" />
      </center></td><?php } ?>
    </tr>
    <?php
  }
  ?>
  </table>
 </form>
 <?php }
 }
 
?> 


er zit een fout in mijn foreach, iemand die weet hoe 'k het oplos ?
Kenny schreef op 24.05.2009 19:03
er zit een fout in mijn foreach, iemand die weet hoe 'k het oplos ?

Een fout?
Er zit een gat in mijn fietsband, weet jij waar die zit?
error_reporting??
Paar dingen:

- Misschien checken of $_GET['nr'] wel echt een nummer is.
- Je checked nergens de waarde van $_POST['gekozen']. Dus als deze leeg is/onjuist werkt het ook al niet.

En zoals hier boven al opgemerkt/gevraagd wordt, wat voor fout krijg je precies?
En je sluit een div af, die geopend is buiten de foreeach loop, dus 1 opening, bijvoorbeeld 4 keer </div>....

edit: en je zit onnodig var's te kopieren, je kan prima $_GET['iets] gebruiken in je query en rest van code
Wel, dat is de bedoeling dat hij niet werkt als er niets gekozen is he. Als er op een post button drukt, word er pas gekozen..

Error: Invalid argument supplied for foreach()
<?php
$string = "blaaat";
foreach($string as $letter) {
echo $letter;
}
/* Levert: Warning:  Invalid argument supplied for foreach() */
?>

Je moet dus kijken of dat je $_POST['gekozen'] een array is, of bestaat.
Er is maar één $_POST['gekozen'] dus werkt dit niet.
foreach($_POST['gekozen']
SanThe schreef op 24.05.2009 20:57
Er is maar één $_POST['gekozen'] dus werkt dit niet.
foreach($_POST['gekozen']

Weet jij of het een array is? Nee, want als het een array is werkt het wel.
<?php
var_dump($_GET, $_GET['blaat']);
foreach($_GET['blaat'] as $blaat) {
echo $blaat . PHP_EOL;
}
/* Get vind ik handiger dan post. Het levert op:
array(1) {
  ["blaat"]=>
  array(3) {
    [0]=>
    string(4) "test"
    [1]=>
    string(4) "blup"
    [2]=>
    string(6) "blabla"
  }
}
array(3) {
  [0]=>
  string(4) "test"
  [1]=>
  string(4) "blup"
  [2]=>
  string(6) "blabla"
}
test
blup
blabla */
?>

Karl schreef op 24.05.2009 21:03
[quote='SanThe schreef op 24.05.2009 20:57']Er is maar één $_POST['gekozen'] dus werkt dit niet.
foreach($_POST['gekozen']

Weet jij of het een array is? Nee, want als het een array is werkt het wel.[/quote]
Ja, het is een array(), je hebt gelijk. Echter het array() heeft altijd slechts één element omdat dat uit (één van de) de submitbutton komt.
SanThe schreef op 24.05.2009 21:08
[quote='Karl schreef op 24.05.2009 21:03'][quote='SanThe schreef op 24.05.2009 20:57']Er is maar één $_POST['gekozen'] dus werkt dit niet.
foreach($_POST['gekozen']

Weet jij of het een array is? Nee, want als het een array is werkt het wel.[/quote]
Ja, het is een array(), je hebt gelijk. Echter het array() heeft altijd slechts één element omdat dat uit (één van de) de submitbutton komt.[/quote]
Owja, mijn excusses.
Dat brengt ons weer op een ander punt. Soms wordt de waarde van een submit niet mee gestuurt.

Reageren