اگر می خواهید هنگام نمایش لیستی از رکوردها، در کنار هر سطر یک چک باکس قرار داده و برنامه ای به زبان PHP ، برای بررسی وضعیت انتخاب این چک باکس ها و انجام عملیات روی گروهی از رکوردها بنویسید، این مطلب به شما کمک می کند. 

حتماً تا حالا به این موضوع فکر کرده اید که در کنار هر سطر از اطلاعات جعبه انتخاب (checkbox) قرار دهید تا کاربر بتواند آنها را انتخاب کند و با کلیک روی دکمه ای که در پایین لیست قرار داده اید، عملیاتی روی سطرهای انتخاب شده انجام دهید. ما در این قسمت با ارائه یک مثال از برنامه نویسی پی اچی پی، لیستی از رکوردها را نمایش می دهیم که در کنار هر رکورد یک چک باکس قرار داشته و با انتخاب چند رکورد و ارسال فرم ، رکوردهای انتخاب شده را از بانک اطلاعاتی حذف می کنیم.

نمایش لیست با چک باکس

آماده سازی بانک اطلاعاتی

شما که این مطلب را مطالعه می کنید حتماً با برنامه نویسی بانک اطلاعاتی به زبان PHP آشنایی دارید و می توانید بانک اطلاعاتی MySQL را در محیط phpmyadmin ایجاد کرده و رکوردهایی را در آن وارد کنید. فرض کنید بانک اطلاعاتی amoozesh با جدولی بنام studs داریم که مشخصات دانشجویان شامل شماره دانشجویی، نام ، معدل و کد رشته را نگهداری می کند.

قبلا در مطلب “اولین برنامه بانک اطلاعاتی به زبان php را بنویسید” ، روش نمایش لیست رکوردها را آموزش داده ایم.

در این قسمت کل لیست دانشجویان داخل یک فرم نوشته شده و در لیست رکوردها در هر سطر یک تگ INPUT از نوع checkbox هم چاپ می کنیم، نام آنرا بصورت یک خانه آرایه تعریف کرده و مقدار آنرا هم شماره دانشجویی قرار می دهیم.

<input type="checkbox" name="list[]" value="<?php echo $row['sid']; ?>">

در انتهای لیست یک دکمه ارسال (submit) قرار می دهیم که با کلیک روی فرم ارسال شود.


<html>
<body>
<form action="delall.php" method="post">
<table border="1" align="center" width="600" >
<tr>
<td>&nbsp;</td>
<td>SID</td>
<td>NAME</td>
<td>AVERAGE</td>
<td>FID</td>
</tr>
<?php
$conn = mysqli_connect("localhost","root","");
mysqli_select_db( $conn , "amoozesh");
mysqli_query($conn , "SET NAMES utf8");
$res = mysqli_query( $conn , "SELECT * FROM studs ");
while( $row = mysqli_fetch_assoc($res) ){
?>
<tr>
<td>
<input type="checkbox" name="list[]" value="<?php echo $row['sid']; ?>">
</td>
<td><?php echo $row['sid']; ?></td>
<td><?php echo $row['name']; ?></td>
<td><?php echo $row['avgr']; ?></td>
<td><?php echo $row['fid']; ?></td>
</tr>
<?php } ?>
<tr>
<td colspan="5">
<input type="submit" value="delete records">
</td>
</tr>
</table>
</form>
</body>
</html>

فرم فوق به اسکریپت delall.php ارسال شده و چک باکس های انتخاب شده هم به همراه درخواست به سرور فرستاده شده و تحویل برنامه خواهند شد.  آرایه list حاوی شماره های دانشجویی برای دانشجویان انتخاب شده خواهد بود .

در ادامه کد برنامه delall.php نوشته شده که ابتدا یک اتصال به بانک اطلاعاتی ایجاد کرده و برای پردازش چک باکس ها، طی یک حلقه تکرار خانه های مختلف آرایه list را بررسی می کند. بازای هر کدام از خانه های آرایه، مقدار آنرا (شماره دانشجویی) را در دستور DELETE  استفاده کرده و دانشجویان را یکی یکی حذف می کند. در پایان هم تعداد دانشجویان حذف شده را نمایش می دهد.


<?php
$conn = mysqli_connect("localhost","root","");
mysqli_select_db( $conn , "amoozesh");
$list=$_POST['list'];
$k=0;
foreach ($list as $sid)
{
$k++;
$sql="DELETE FROM studs WHERE sid=$sid";
mysqli_query( $conn , $sql);
}
echo "$k record is deleted";
?>

مثال فوق، روش استفاده از چک باکس ها برای انتخاب رکوردها و انجام عملیات به صورت گروهی روی رکوردها را نشان می دهد، شما می توانید برای کد های برنامه را مطابق با کاری که می خواهید انجام دهید تغییر دهید.

 

نمایش قابل چاپ