Nieuw lid |
|
Hoi,
Ik heb een FOR loop waarin ik een aantal vooraf gespecifieerde input velden toon (formulier). Als je op de voorgaande pagina dus 2 hebt ingevoerd, zal ie 2 SELECTS tonen met ieder een ander eindcijfer (bvb: name="Pop4" waarin 4 veranderd). De inhoud van deze SELECT word uitgelezen uit een MySQL DB en is bij elk SELECT veld hetzelfde, je hebt dus als het ware 2 SELECT velden, waar je dan 2 items kan kiezen, MAAR die mogen NIET hetzelfde zijn! Dit dacht ik te doen door een INPUT veld mee te geven als 'hidden' (met als naam bvb: 'name=itemid_1' zo tot 2 of meer) en value het eigelijk ITEM_ID uit de DB. Echter moet ik, om alle info juist uit de DB te halen, gebruik maken van een WHILE loop en dit IN een FOR loop.. Wat klaarblijkelijk toch wel wat problemen met zich meebrengt; het aantal SELECT velden word hierdoor verdubbelt en de waarden (options) zijn leeg. Ook maakt hij meerdere input velden aan dan mag, deze hebben dezelfde(!) naam maar verschillende value's. Om het te verduidelijken hieronder de code en de output code.
<?
for ($i=1; $i<=$item_amount; $i++)
{
$items = MySQL_Query("SELECT id, name, level FROM items WHERE level >='70' ORDER BY name ASC ") or die(mysql_error());
$item_id = MySQL_Query("SELECT id, name, level FROM items WHERE level >='70' ORDER BY name ASC ") or die(mysql_error());
?>
<tr height="20">
<td align="center">
<?
while ($id = mysql_fetch_assoc($item_id)) {
?>
<input type="hidden" name="item_id<? echo $i; ?>" value="<? echo $id['id']; ?>" />
<?
}
?>
<input type="hidden" name="items_amount" value="<? echo $item_amount; ?>" />
<SELECT class="input2" name="<? echo "item" .$i; ?>">
<?
while ($item = mysql_fetch_assoc($items)) {
?>
<option value="<? echo $item['id']; ?>"><? echo $item['name']; ?></option>
<?
}
?>
</SELECT>
</td>
</tr>
<?
}
?>
<? for ($i=1; $i<=$item_amount; $i++) { ?> <tr height="20"> <td align="center"> <? ?> <input type="hidden" name="item_id <? echo $i; ?>" value=" <? echo $id['id']; ?>" /> <? } ?> <input type="hidden" name="items_amount" value=" <? echo $item_amount; ?>" /> <SELECT class="input2" name=" <? echo "item" .$i; ?>"> <? ?> <option value=" <? echo $item['id']; ?>"> <? echo $item['name']; ?></option> <? } ?> </SELECT> </td> </tr> <? } ?>
HTML Output:
<tr height="20">
<td align="center">
<input type="hidden" name="item_id1" value="2" />
<input type="hidden" name="item_id1" value="1" />
<input type="hidden" name="items_amount" value="2" />
<SELECT class="input2" name="item1">
<option value="2">Tandeborstel</option>
<option value="1">Schoendoos</option>
</SELECT>
</td>
</tr>
<tr height="20">
<td align="center">
<input type="hidden" name="item_id2" value="2" />
<input type="hidden" name="item_id2" value="1" />
<input type="hidden" name="items_amount" value="2" />
<SELECT class="input2" name="item2">
<option value="2">Tandeborstel</option>
<option value="1">Schoendoos</option>
</SELECT>
</td>
</tr>
<input type="hidden" name="item_id1" value="2" /> <input type="hidden" name="item_id1" value="1" /> <input type="hidden" name="items_amount" value="2" /> <SELECT class="input2" name="item1"> <input type="hidden" name="item_id2" value="2" /> <input type="hidden" name="item_id2" value="1" /> <input type="hidden" name="items_amount" value="2" /> <SELECT class="input2" name="item2">
Zoals je kan zien in de laatste code toont ie 2x 3 Hidden fields, 1 teveel dus. Item_id1 en item_id2 dienen achteraf met elkaar vergeleken te worden.
Tgoh.. Ik ben blijkbaar slecht in iets uit te leggen als ik het zo terug lees..
|