Fjerne element i array
Jeg har en side, hvor der dynamisk bliver lavet et antal rækker, hvor der i hver række er en rullemenu, der viser en specifik projektleder, men selvfølgelig samtidig giver muligheden for at vælge de andre projektleder.Nu kunne jeg godt tænke mig at gøre, så brugeren ikke kan vælge den samme projektleder 2 gange i hver sin række. Så jeg tænkte at det måtte jeg kunne gøre med unset() på array-elementet, men det virker kun tildels.
Jeg kan se, at elementer bliver slettet, men rullemenuen er nu kun udfyldt med data i den første række, i de efterfølgende er den tom. Så et eller andet gør jeg galt, kan bare ikke se hvad?
Nedenstående kode håndtere at lave rækkerne. $ENTREPRISE er et array som f.eks. kan indeholde
Array([11820] => Array([navn] => Projektledernavn (initialer) [land] => Array([0] => DK)))
<?php
$pm = "SELECT * FROM projektmedlemmer AS pm
LEFT JOIN stamdata ON pm.stamdataID = stamdata.unique_id
WHERE ordreID = '".$_GET['id']."'";
$pmsql = mysql_query("$pm") or die(mysql_error());
$counter = 1;
$antalPl = mysql_num_rows($pmsql);
if ($antalPl) {
while ($pmr = mysql_fetch_array($pmsql)) {?>
<tr>
<td><?php if ($counter == 1) { echo "Projektansvarlig:"; } else { echo "Deltager:"; }?>
</td>
<td><?php
/* echo "<pre>";
print_r($ENTREPRISE);
echo "</pre>";*/
?>
<!-- Skjult felt indeholdende id i projektmedlemstabellen -->
<input type="hidden" readonly class="inputsmall" name="projektmedlem_<?php echo $counter; ?>_id" value="<?php echo $pmr['id']; ?>">
<!-- Skjult felt indeholdende medarbejderens unikke id fra stamdata tabellen -->
<input type="hidden" class="inputsmall" name="projektmedlem_<?php echo $counter; ?>_stamdataID" value="<?php echo $pmr['stamdataID']; ?>">
<select name="projektmedlem_<?php echo $counter; ?>_pl" size="1" class="listform">
<option value=""></option>
<?php
if ($counter == 1) {//For at være sikker på vi finder den rigtige ansvarlige, tjekker vi ved 1. række for kun ham
$apl = "SELECT * FROM projektmedlemmer AS pm
LEFT JOIN stamdata ON pm.stamdataID = stamdata.unique_id
WHERE ordreID = '".$_GET['id']."' && ansvarlig = 1";
$aplsql = mysql_query("$apl") or die(mysql_error());
$aplr = mysql_fetch_array($aplsql);
reset($ENTREPRISE);
while (list ($key, $val) = each ($ENTREPRISE)) {
//echo $key;
//echo $val['navn'];
$select = '';
if ($key == $aplr['employee']) $select = ' selected';
?>
<option value="<?php echo $key; ?>"<?php echo $select; ?>><?php echo $val['navn']; ?></option>
<?php //echo $ENTREPRISE[$key];
unset($ENTREPRISE[$key]);
}
} else {//Alle andre
reset($ENTREPRISE);
while (list ($key, $val) = each ($ENTREPRISE)) {
echo $val['navn'];
$select = '';
//if ($key == $res['r1']) $select = ' selected';
if ($key == $pmr['employee']) $select = ' selected';
?>
<option value="<?php echo $key; ?>"<?php echo $select; ?>><?php echo $val['navn']; ?></option>
<?php
}
}
?>
</select>
</td>
<td>
<input type="text" class="inputextrasmall" name="projektmedlem_<?php echo $counter; ?>_forv_start" value="<?php if ($counter == 1) {
echo sqltoalmdatetom($aplr['forv_start']);} else { echo sqltoalmdatetom($pmr['forv_start']); }?>">
</td>
<td>
<input type="text" class="inputextrasmall" name="projektmedlem_<?php echo $counter; ?>_forv_slut" value="<?php if ($counter == 1) {
echo sqltoalmdatetom($aplr['forv_slut']);} else { echo sqltoalmdatetom($pmr['forv_slut']); }?>">
</td>
<td>
<input type="text" class="inputextraextrasmall" name="projektmedlem_<?php echo $counter; ?>_procent" value="<?php if ($counter == 1) {
echo $aplr['procent'];} else { echo $pmr['procent']; }?>" /> %
</td>
<td>
<?php if ($counter > 1) { ?>
<a href="/entreprise_ordre_init_process.php?pmid=<?php echo $pmr['id'];?>&ordreid=<?php echo $pmr['ordreID'];?>&thispage=1" name="slet">
<img border="0" name="slet" src="/gfx/delete.gif" alt="Slet">
</a>
<?php }?>
</td>
</tr>
<?php //}
$counter++;
}
}
?>
$pm = "SELECT * FROM projektmedlemmer AS pm
LEFT JOIN stamdata ON pm.stamdataID = stamdata.unique_id
WHERE ordreID = '".$_GET['id']."'";
$pmsql = mysql_query("$pm") or die(mysql_error());
$counter = 1;
$antalPl = mysql_num_rows($pmsql);
if ($antalPl) {
while ($pmr = mysql_fetch_array($pmsql)) {?>
<tr>
<td><?php if ($counter == 1) { echo "Projektansvarlig:"; } else { echo "Deltager:"; }?>
</td>
<td><?php
/* echo "<pre>";
print_r($ENTREPRISE);
echo "</pre>";*/
?>
<!-- Skjult felt indeholdende id i projektmedlemstabellen -->
<input type="hidden" readonly class="inputsmall" name="projektmedlem_<?php echo $counter; ?>_id" value="<?php echo $pmr['id']; ?>">
<!-- Skjult felt indeholdende medarbejderens unikke id fra stamdata tabellen -->
<input type="hidden" class="inputsmall" name="projektmedlem_<?php echo $counter; ?>_stamdataID" value="<?php echo $pmr['stamdataID']; ?>">
<select name="projektmedlem_<?php echo $counter; ?>_pl" size="1" class="listform">
<option value=""></option>
<?php
if ($counter == 1) {//For at være sikker på vi finder den rigtige ansvarlige, tjekker vi ved 1. række for kun ham
$apl = "SELECT * FROM projektmedlemmer AS pm
LEFT JOIN stamdata ON pm.stamdataID = stamdata.unique_id
WHERE ordreID = '".$_GET['id']."' && ansvarlig = 1";
$aplsql = mysql_query("$apl") or die(mysql_error());
$aplr = mysql_fetch_array($aplsql);
reset($ENTREPRISE);
while (list ($key, $val) = each ($ENTREPRISE)) {
//echo $key;
//echo $val['navn'];
$select = '';
if ($key == $aplr['employee']) $select = ' selected';
?>
<option value="<?php echo $key; ?>"<?php echo $select; ?>><?php echo $val['navn']; ?></option>
<?php //echo $ENTREPRISE[$key];
unset($ENTREPRISE[$key]);
}
} else {//Alle andre
reset($ENTREPRISE);
while (list ($key, $val) = each ($ENTREPRISE)) {
echo $val['navn'];
$select = '';
//if ($key == $res['r1']) $select = ' selected';
if ($key == $pmr['employee']) $select = ' selected';
?>
<option value="<?php echo $key; ?>"<?php echo $select; ?>><?php echo $val['navn']; ?></option>
<?php
}
}
?>
</select>
</td>
<td>
<input type="text" class="inputextrasmall" name="projektmedlem_<?php echo $counter; ?>_forv_start" value="<?php if ($counter == 1) {
echo sqltoalmdatetom($aplr['forv_start']);} else { echo sqltoalmdatetom($pmr['forv_start']); }?>">
</td>
<td>
<input type="text" class="inputextrasmall" name="projektmedlem_<?php echo $counter; ?>_forv_slut" value="<?php if ($counter == 1) {
echo sqltoalmdatetom($aplr['forv_slut']);} else { echo sqltoalmdatetom($pmr['forv_slut']); }?>">
</td>
<td>
<input type="text" class="inputextraextrasmall" name="projektmedlem_<?php echo $counter; ?>_procent" value="<?php if ($counter == 1) {
echo $aplr['procent'];} else { echo $pmr['procent']; }?>" /> %
</td>
<td>
<?php if ($counter > 1) { ?>
<a href="/entreprise_ordre_init_process.php?pmid=<?php echo $pmr['id'];?>&ordreid=<?php echo $pmr['ordreID'];?>&thispage=1" name="slet">
<img border="0" name="slet" src="/gfx/delete.gif" alt="Slet">
</a>
<?php }?>
</td>
</tr>
<?php //}
$counter++;
}
}
?>
Hvad har jeg glemte eller overset?
