سلام برنامه نویسان عزیز خسته نباشید. یه پروژه ای دارم انجام میدم که کارفرما گفته میخاد توی یکی از صفحه ها یه فرمی باشه که کاربر بتونه فیلد های اونو اضافه کنه و به همراه اون یه سری قابلیت های ویژه.خلاصش کنم.من فرمو کامل درآوردم و بخام حدودی چجوری در اومده مثل عکس زیر:
یسی.png
و جدول های پایگاه داده هم به شکل زیر هستن :
جدول services :
title id service1 1 service2 2 service3 3 service4 4 service5 5 جدول unit :
basicprice title id
جدول unit_service:
unit_id service_id id
لیست سرویس ها رو میره از دیتابیس میاره.خوب من مشکلی نداشتم با این موردش و کد هاشم درآوردم و زدم فقط مشکل من اینجاست : موقعی که کاربر ثبت میکنه اون چک باکس ها نمیره برای هر کدوم سطر ها جدا ثبت بشه و همه چک باکس های توی کل فرم را میره توی جدول برای هر کدوم ذخیرش میکنه.
کد من به شکل زیره :
دوستان اگه وقتشو دارن کد را ران کنن بیشتر دستشون میاد.ممنونکد HTML:<form method="post"> <table id="unit"> <tr id="row1"> <td> <input placeholder='Title' type='text' name='unit_title[]'> <input placeholder='Basic price' type='text' name='unit_basic_price[]'> <div> <?php include_once '../db.php'; $sql = mysqli_query($connection, 'SELECT * FROM services'); while ($row = $sql->fetch_assoc()) { echo "<label><input name='checkbox[]' value='$row[id]' type='checkbox'>$row[title]</label>"; } ?> </div> </td> </tr> </table> <button type="button" onclick="add_row()">Add room</button> <input value="Submit" type="submit" name="submit"/> </form> <script type="text/javascript"> function add_row() { $rowno = $("#unit tr").length; $rowno = $rowno + 1; $phpcode = "<?php $sql = mysqli_query($connection, 'SELECT * FROM services'); while ($row = $sql->fetch_assoc()) { echo " <label><input name='checkbox[]' value='$row[id]' type='checkbox'>$row[title]</label> "; } ?>"; $("#unit tr:last").after("<hr/><tr id='row" + $rowno + "'><td><input placeholder='Title' type='text' name='unit_title[]'><input placeholder='Basic price' type='text' name='unit_basic_price[]'><div>" + $phpcode + "</div></td> </tr>"); } </script>
<?php
if (isset($_POST['submit'])) {
include_once "../db.php";
$unit_title = $_POST['unit_title'];
$unit_basic_price = $_POST['unit_basic_price'];
$unit_checkbox = $_POST['checkbox'];
for ($i = 0; $i < count($unit_title); $i++) {
$sql_insert_boomgardi_unit = "insert into unit (title,basicPrice) values('$unit_title[$i]','$unit_basic_price[$i]')";
if ($connection->query($sql_insert_boomgardi_unit) === true) {
$last_id_unit = mysqli_insert_id($connection);
for ($k = 0; $k < count($unit_checkbox); $k++) {
$sql_insert_boomgardi_unit_service = "insert into unit_service (service_id, unit_id)
values('$unit_checkbox[$k]','$last_id_unit')";
if ($connection->query($sql_insert_boomgardi_unit_service) === true) {
$unit_status = "OK";
}
}
}
}
$connection->close();
}