どの項目がチェックされているかを判断するJavaScriptの簡単なチェックボックス機能があります。
<script type="text/javascript" language="javascript">
var items = new Array();
function prepareDeleteItems(className){
var value = className;
if($('.'+value).attr('checked'))
{
items[items.length] = value;
}
else
removeItemFromList(value);
reAddHiddenInput();
}
function reAddHiddenInput(){
$('.itemsToDelete').html("");
for(var i = 0; i<items.length; i++)
{
$('.itemsToDelete').append('<input type="hidden" name="itemstodelete[]" value="'+($('.'+items[i]).val())+'" />');
}
}
function removeItemFromList(className){
for(var i = 0; i<items.length; i++)
{
if(items[i] == className)
items.splice(i,1);
}
return;
}
</script>
次に、選択したアイテムを削除するifステートメントがあります。
if (isset($_POST['delete'])){
$delete = $_POST['check'];
$N = count($delete);
echo $N;
for($i=0; $i < $N; $i++){
$strSQL = "DELETE FROM customerinfo ";
$strSQL .="WHERE CUS_ID = '".$delete[$i]."' ";
mysql_query($strSQL);
}
}
そしてデータを表示する
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="POST">
<div>
<input type="button" title="delete item" value='Delete' name='delete'/></div>
<div>
<table width='95%' border='1' class='hovertable'>
<tr>
<td colspan='9'>CUSTOMERS</td>
</tr>
<tr>
<th>---</th>
<th>---</th>
<th>ID</th>
<th>First Name</th>
<th>Last Name</th>
<th>Email</th>
<th>Gender</th>
<th>Address</th>
<th>Contact</th>
</tr>
<?php
while($row = mysql_fetch_array($sql2)){
$CUS_ID = $row['CUS_ID'];
$FNAME = $row['FNAME'];
$LNAME = $row['LNAME'];
$EMAIL = $row['EMAIL'];
$GENDER = $row['GENDER'];
$ADDRESS = $row['ADDRESS'];
$CONTACT = $row['CONTACT'];
?>
<tr>
<?php if (isset($_POST['update'])){ ?>
<?php if($ID==$CUS_ID){?>
<?php }else{?>
<?php } ?>
<?php }else{?>
<td align='center'>
これがチェックボックスを配置した場所です。
<input type="checkbox" name="check[]" class="item_del_<?php echo $CUS_ID; ?>" value="<?php echo $CUS_ID; ?>" onclick="prepareDeleteItems('item_del_<?php echo $CUS_ID; ?>');" />
<!--ADD--> </td>
<?php } ?>
</form>
とより多くのコード。
チェックボックス機能が機能せず、アイテムが削除されません。助けてください。