amihd1378
پنج شنبه 25 مرداد 1397, 10:56 صبح
سلام برنامه نویسان عزیز خسته نباشید. یه پروژه ای دارم انجام میدم که کارفرما گفته میخاد توی یکی از صفحه ها یه فرمی باشه که کاربر بتونه فیلد های اونو اضافه کنه و به همراه اون یه سری قابلیت های ویژه.خلاصش کنم.من فرمو کامل درآوردم و بخام حدودی چجوری در اومده مثل عکس زیر:
148707
و جدول های پایگاه داده هم به شکل زیر هستن :
جدول services :
title
id
service1
1
service2
2
service3
3
service4
4
service5
5
جدول unit :
basicprice
title
id
جدول unit_service:
unit_id
service_id
id
لیست سرویس ها رو میره از دیتابیس میاره.خوب من مشکلی نداشتم با این موردش و کد هاشم درآوردم و زدم فقط مشکل من اینجاست : موقعی که کاربر ثبت میکنه اون چک باکس ها نمیره برای هر کدوم سطر ها جدا ثبت بشه و همه چک باکس های توی کل فرم را میره توی جدول برای هر کدوم ذخیرش میکنه.
کد من به شکل زیره :
<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();
}
دوستان اگه وقتشو دارن کد را ران کنن بیشتر دستشون میاد.ممنون
148707
و جدول های پایگاه داده هم به شکل زیر هستن :
جدول services :
title
id
service1
1
service2
2
service3
3
service4
4
service5
5
جدول unit :
basicprice
title
id
جدول unit_service:
unit_id
service_id
id
لیست سرویس ها رو میره از دیتابیس میاره.خوب من مشکلی نداشتم با این موردش و کد هاشم درآوردم و زدم فقط مشکل من اینجاست : موقعی که کاربر ثبت میکنه اون چک باکس ها نمیره برای هر کدوم سطر ها جدا ثبت بشه و همه چک باکس های توی کل فرم را میره توی جدول برای هر کدوم ذخیرش میکنه.
کد من به شکل زیره :
<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();
}
دوستان اگه وقتشو دارن کد را ران کنن بیشتر دستشون میاد.ممنون