Op de eerste pagina kan je via een selectbox 1 of meerdere bestanden selecteren uit een rij bestanden die van de server opgehaald worden en vervolgens kan je per bestand kiezen of dit bestand moet worden gecorrigeerd.

<?php
$list = ftp_nlist($conn_id,$path); 
$i = 0; 
foreach ($list as $bestand) 
{ 
if (in_array($bestand,$db_bestanden)) 
{ 
echo "&nbsp;"; 
} 
else 
{ 
	if (isset($afwisseling) && $afwisseling == '1') { 
	$color = "#efefef"; 
	$afwisseling = '2';
	} 
	else { 
	$color = "#dedede"; 
	$afwisseling = '1';
	} 
?>
<tr>
<td width="10" bgcolor="<?php echo $color; ?>">
<input type="checkbox" name="edit[<?php echo $bestand; ?>]">
</td>
<td width="600" class="kopBestand" bgcolor="<?php echo $color; ?>">
<input type="hidden" name="bestand" value="<?php echo $bestand; ?>">
<?php 
echo $bestand; 
?>
</td>
<td width="80" bgcolor="<?php echo $color; ?>">
<select name="correctie[<?php echo $bestand; ?>]"> 
<option value="corrigeren" selected>corrigeren</option> 
<option value="niet corrigeren">niet corrigeren</option> 
</select> 
</td>
<td align="right" bgcolor="<?php echo $color; ?>">
<?php
echo "<a href='verwijder_bestand.php?bestand=$bestand' onClick=\"return confirm('Weet u zeker dat u het bestand $bestand wilt verwijderen?')\">";
echo "<img src=\"delete.gif\" border=0 alt=\"Verwijder\"></a></td>";
}
$i++; 
}
// sluit de FTP verbinding 
ftp_close($conn_id); 
?>
</td>
</tr>
</table>

Als je op 'ok' klikt kom je op de volgende pagina waar de naam van het bestand staat en tussen haakjes moet komen te staan of het bestand moet worden gecorrigeerd of niet. Nu staat er echter tussen haakjes Array. Wat doe ik fout?

<?php
session_start();
$_SESSION['edit'] = $_POST['edit']; 
$_SESSION['correctie'] = $_POST['correctie']; 
echo'<table border=0 class="kop" cellspacing=0 cellpadding=2 width=750>
<tr><td colspan="3" class="kop3" height="22"><b>Uw geselecteerde bestand(en) om samen te stellen';
echo'</b></td></tr>';
foreach ($_SESSION['edit'] as $bestanden => $waarde) 
{
if (isset($alternate) && $alternate == "1") 
{ 
$color = "#efefef"; 
$alternate = "2"; 
} 
else 
{ 
$color = "#dedede"; 
$alternate = "1"; 
}
echo'<tr><td width="750" height="22" class="kopBestand" bgcolor=$color>';
echo $bestanden;
echo'&nbsp;('.$_SESSION['correctie'].')'; 
}
echo'</td>
</tr>
</table>'; 
?>
Beetje dubbelop: Edit aanvinken en dan nog een selectbox.

echo'&nbsp;('.$_SESSION['correctie'].')';
moet zijn
echo'&nbsp;('.$_SESSION['correctie'][$bestanden].')';

SanThe; geweldig bedankt! Het werkt, maar deze opsomming staat bovenaan een formulier en moet worden samengesteld met verschillende dropdowns die na keuze van een dropdown de pagina telkens verversen en dan verdwijnt echo'&nbsp;('.$_SESSION['correctie'][$bestanden].')';
Hoe kan ik dat vasthouden terwijl de pagina ververst?

Daarnaast zeg je 'beetje dubbelop'; is er een simpelere manier?
Alles in een session wordt vastgehouden.

Edit: Als je de checkbox aanvinkt dan is dat toch genoeg.
Maar de session verdwijnt bij het verversen van het formulier; er staat dan naambestand () i.p.v. naambestand (corrigeren) of naambestand (niet corrigeren)

De checkbox alleen is niet genoeg want er zijn ook bestanden die wel aangevinkt moeten worden om op de volgende pagina te worden samengesteld maar die niet hoeven te worden gecorrigeerd, vandaar een checkbox en apart een dropdown.
$_SESSION['correctie'] = $_POST['correctie'];

Als er niks gepost is zal dit weer leeg zijn.
Dus een check inbouwen kan geen kwaad.
Nogmaals bedankt, SanThe, dat je mij wilt helpen, maar wat ik zo gek vind is dat $bestanden wel blijft staan na het verversen van het formulier terwijl $_SESSION['correctie'][$bestanden] dat niet doet. En dan heb ik het over het tweede stukje script van mijn post van 17:19 uur
Marco, misschien is het handig als je controleert of er wel data verstuurd wordt.

Je voert $_SESSION['correctie'] = $_POST['correctie']; bij elke reload opnieuw uit, terwijl het alleen de eerste keer iets verstuurd wordt.
@marco,

misschien is het voor jezelf makkelijker en overzichtelijker als je wat netter programmeerd zodat je een goed overzicht krijgt en sneller en makkelijker eventuele fouten eruit kunt halen....

Greets,
Marco
Bedankt mensen voor jullie reacties; ik ga hier verder mee aan de slag. Hopelijk kom ik er zelf uit...

Reageren