An "Real World" example of how I do a similar thing might help:

My list with checkboxes (since this is dynamic, I don't know what numbers are assigned) $itemID is the id of the record from the mysql table, so the check box name is 'chk_12' for id=12. $checkAll is a flag if the user selected the "Check All" button, echos("selected") to check all the checkboxes.

<td><input type='checkbox' name='chk_$itemID' value='$itemID' $checkAll></td>

The in my process code I switch the submit button and test for delete. $maxID is the max(id) from the list of items. I walk through the possible list of items and see if any were checked and if so append them to my list of deletes. Note that I use "where id in ()" to gather all the items at once.

case "Delete Selected Records":
for($x=0;$x<=$maxID;$x++){
$varname="chk_$x";
$value=$$varname;
if($value) {
$events[] = $value;
}
}
if($events) $events_IDs = implode("','", $events);
$sql= "delete from $tableName where id in ('$events_IDs')";
mysql_query($sql) or die($sql . mysql_error());
$message_str="Record(s) deleted";
break;

HTH
Terry

On Thursday, November 7, 2002, at 09:24 AM, Aaron Wolski wrote:

Hi All,

In a form I have checkboxes associated with order records. The
checkboxes are for deleting order records (should a client choose to do
so).

It looks like this:

<form name="form" action="process_bank.php" method="POST">
    <input type="hidden" name="order_index[0]" value="1">
    <td class="cartlink" align="center"><input type="checkbox"
name="delete[0]" value="1"></td>
    <input type="hidden" name="order_index[1]" value="3">
    <td class="cartlink" align="center"><input type="checkbox"
name="delete[1]" value="1"></td>
    <input type="hidden" name="order_index[2]" value="8">
    <td class="cartlink" align="center"><input type="checkbox"
name="delete[2]" value="1"></td>
    <input type="hidden" name="order_index[3]" value="12">
    <td class="cartlink" align="center"><input type="checkbox"
name="delete[3]" value="1"></td>
</form>

Now.. when the process button is pressed the information is carried off
to the process_bank.php script.

Lets assume for this example.. I selected the checkbox delete[0] (which
equals value 1) and delete[3] (which equals value 12).

In the script I have this code:

for ($i=0;$i<sizeof($order_index);$i++) {

   $orderQuery = db_query("SELECT id FROM TestOrderTable WHERE
id=".$order_index[$i]);
   $orderResult = db_fetch($orderQuery);

   if ($delete[$i] == 1) {

    $ids .= $orderResult["id"];

    echo $ids;


   }
}

The echo'd value that I get is 1,1,12 when it should be 1,12.

When only ONE checkbox is selected I just get the one value displayed
(i.e. if I selected the first checkbox the echo'd value would be 1).

Does anyone know why the first value is being duplicated on a multiple
select but not on a single select?

Sorry if this sounds confusing :(

Aaron

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to