Ik heb een foreach() functie in mijn script om te zorgen dat elke checkbox verbonden is aan een id uit de database. Het is de bedoeling dat men een checkbox aanvinkt en dan op de submit knop drukt. Wanneer er nu geen checkbox wordt aangevinkt hoort er krijg ik een foutmelding:

Notice: Undefined index: telid in C:\Websites\Localhost\telefoonlijst\gsmbewerk.php on line 53

Warning: Invalid argument supplied for foreach() in C:\Websites\Localhost\telefoonlijst\gsmbewerk.php on line 53


Dit is een logische foutmelding, omdat er geen checkbox is aangevinkt dus telid niet bestaat.
Maar nu wil ik wanneer er geen checkbox is aangevinkt een foutmelding naar de gebruiker laten zien, dat men iets aan moet vinken. hoe kan ik dit het beste doen in het volgende stukje script?


// bewerken
	if (isset($_POST['update'])){
		$maxid = 0;
	?>
		
    <form name="verzenden" action="" method="post">
    <h2>Bewerken</h2>
	
    <?php
		foreach($_POST['telid'] As $value ){
			echo "<input type='hidden' name='telid' value=$value />";
		
			$sql3 = "SELECT * FROM gsm WHERE id=$value";
			$query3 = mysql_query($sql3);
			if (!$query3) {
			echo "Foutje in je query: ".mysql_error().".<br />De query was: ".$sql3;
			} 			
			
			while($row2 = mysql_fetch_array( $query3 )) {
				
				$id = $row2['id'];
				echo "<input type='hidden' name='".$id."' value='".$id."' />";	
				
					echo "<b>".$row2['naam']."</b><br>";
					echo "<table>";
					echo "<td>Naam: </td><td><input type='text' size='25' name='".$id."naam' value='".$row2['naam']."' /></td>";
					echo "</tr><tr>";
					echo "<td>Telefoonnummer: </td><td><input type='text' size='25' name='".$id."nummer' value='".$row2['nummer']."' /></td>";
					echo "</tr><tr>";
					echo "<td>Inlognaam: </td><td><input type='text' size='25' name='".$id."inlog' value='".$row2['inlog']."' /></td>";					
					echo "</tr><tr>";
					echo "<td>Afdeling: </td><td><input type='text' size='25' name='".$id."afdeling' value='".$row2['afdeling']."' /></td>";
					echo "</tr><tr>";
					echo "<td>Intern verkort nummer: </td><td><input type='text' size='25' name='".$id."internnummer' value='".$row2['internnummer']."' /></td>";					
					echo "</tr></table>";
					

					
					if ($id > $maxid){
						$maxid = $id;
					}
				} 
				
		}
	echo "<input type='hidden' name='maxid' value='".$maxid."' />";
	?>
	<br>
	<center>
   
    <input type='submit' name='opslaan' value='Opslaan' />
    </center>
	</form>
    <?php
	} else {
	
	echo "blaat";
	?>
Een foreach gebruik je enkel wanneer je een array hebt.

Wat je kan doen:
<?php
if ( is_array($_POST['telid']) )
{
foreach (...
}
else
{
// foutmelding
}
?>
Emmanuel Delay schreef op 23.03.2009 20:31
Een foreach gebruik je enkel wanneer je een array hebt.

Wat je kan doen:
<?php
if ( is_array($_POST['telid']) )
{
foreach (...
}
else
{
// foutmelding
}
?>


dankje, dit was de juiste oplossing die ik zocht.

Reageren