Ik heb hier de volgende rare situatie:

eerst een paar rijen

code omschrijving checkbox
code omschrijving checkbox
code omschrijving checkbox
34 PHP hulp heerst [X]

de checkbox heeft als naam de id van de rij.

Ik wil deze nu kunnen bewerken dmv een formuliertje. Zodra de checkbox van een rij is aangetikt, moet de waarde 'done' in de database op 1 worden gezet bij die rij met dat id. bijvoorbeeld rij id 34 (is ook een DB waarde) is aangevinkt, Als ik nu opsla moet de waarde van de cell done van item 34 met 'omschrijving PHPhulp heerst' op 1 worden gezet

Ik hoop dat jullie het nog begrijpen, en ik hoop dat jullie me kunnen helpen

Groeten, Nico
Het is mij niet echt duidelijk.
En wat is de bijbehorende vraag?
Ik heb dus een rijtje checkboxes met id's, die kunnen wel of niet aangevinkt zijn. Ik wil dus eerst checken WELKE checkboxes zijn aangevinkt, en vervolgens er weer mee verder kunnen werken.

Hoe doe ik dat, de checkbox namen worden in een while aangemaakt, moet ik ze dan weer uitlezen met een while om er achter te komen of ze bewerkt zijn?

hoe kan ik bijvoorbeeld een rijtje maken met aangevinkte checkboxes

edit: misschien wat code toevoegen:

Aanmaken checkboxes:

	<table border='0' cellpadding='0' cellspacing='0' width='100%' class='tabel'>
		<tr>
	<form action='#' method='POST'>	
<?php
$credcount = 0;
$vakoverzicht = mysql_query("SELECT * FROM vakken ORDER BY id") OR die (my_sql_error);
while($row = mysql_fetch_assoc($vakoverzicht)){
$code = $row['code'];
$module = $row['module'];
$cred = $row['cred'];
$done = $row['done'];
$id = $row['id'];
$credcount = $credcount + $cred;
print "<tr>";
print "<td><b>$code</b></td>
		<td>$module</td>
		<td width='20px'>$cred</td>
		<td width='40px'><center><td width='40px'><center><input type='checkbox' name='$id' /></center></td>";</center></td>";
print "</tr>";
}
print "<tr><td></td><td><input type='submit' value='Aanpassen' class='submit'></td><td><span class='kopje'>$credcount</span></td><td></td></tr>";
print "</table>";
?>


en deze checkboxes wil ik uitlezen of ze wel of niet aangevinkt zijn

beetje quick and dirty code zeg ik maar alvast

edit2: weer even checkboxes van gemaakt, had het even veranderd om te testen, maar zo klopt het weer

edit 3: Opgelost:

<?php
$vakoverzicht = mysql_query("SELECT * FROM vakken ORDER BY id") OR die (my_sql_error);
while($row = mysql_fetch_assoc($vakoverzicht)){
$dbid = $row['id'];

if (isset($_POST["$dbid"])) {

print "TEST: $dbid <br>";
}
}
De $row-vars onveranderd copiƫren is alleen geheugenverspilling en verder niet nuttig. Hou $vars buiten de quotes. Html hoort dubbele quotes te hebben. Ik zie nergens een checkbox. De name van een input mag geen getal zijn. De </form> tag ontbreekt.
beetje quick and dirty code zeg ik maar alvast

Een beetje? Het is gewoon een ramp. Begin je echo met single quote (') en gebruik in je html dubbel quotes (") zoals 't hoort. En variabelen horen buiten quotes, dus:
<?php
echo 'Ik ben '.$naam;
echo 'Ik ben '.$jaar.' oud';

//en niet:
echo 'ik ben $naam';
?>

Ik zie in je script geen checkboxes hoor, maar je bedoelt waarschijnlijk zoiets:
<?php
if(strtolower($_SERVER['REQUEST_METHOD']) == 'post')
{
foreach($_POST['checks'] as $key=>$check)
{
echo $key.' '.$check.'<br/>';
}
}

echo '<form method="post">';
for($i=0; $i<10; $i++)
{
echo $i.'<input type="checkbox" name="checks['.$i.']"><br/>';
}
echo '<input type="submit">
</form>';
?>
ipv een for loop en $i kan je 't ook in een while zetten en de id uit de database halen.

EDIT: Te laat :-(

Reageren