نمایش نتایج 1 تا 4 از 4

نام تاپیک: فرم html - php داینامیک

  1. #1

    فرم html - php داینامیک

    سلام برنامه نویسان عزیز خسته نباشید. یه پروژه ای دارم انجام میدم که کارفرما گفته میخاد توی یکی از صفحه ها یه فرمی باشه که کاربر بتونه فیلد های اونو اضافه کنه و به همراه اون یه سری قابلیت های ویژه.خلاصش کنم.من فرمو کامل درآوردم و بخام حدودی چجوری در اومده مثل عکس زیر:

    یسی.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();
    }
    دوستان اگه وقتشو دارن کد را ران کنن بیشتر دستشون میاد.ممنون
    آخرین ویرایش به وسیله amihd1378 : پنج شنبه 25 مرداد 1397 در 10:07 صبح

  2. #2
    کاربر دائمی آواتار parsidev
    تاریخ عضویت
    شهریور 1384
    محل زندگی
    همین حوالی
    پست
    258

    نقل قول: فرم html - php داینامیک

    خروجی منطقیه!
    هر چند شیوه کارت غلطه اما؛
    با این حال با فرض اینکه تعداد فیلدهای چک باکست در هر آیتم 5 تا باشه کد php رو می تونی با یه تغییرات جزئی به صورت زیر بنویسی تا اونی که می خوای در بیاد:
    کد HTML:
    <?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'];
    
    
    $checkboxs_in_row = 5;
    $current_checkbox_index = 0;
     
        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 = $current_checkbox_index; $k < ($current_checkbox_index + $checkboxs_in_row); $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";
                    }
                }
    	$current_checkbox_index = $k;
            }
        }
        $connection->close();
    }

  3. #3
    کاربر دائمی آواتار parsidev
    تاریخ عضویت
    شهریور 1384
    محل زندگی
    همین حوالی
    پست
    258

    نقل قول: فرم html - php داینامیک

    این دوتا متغییر رو من اضافه کردم:
    کد HTML:
    $checkboxs_in_row = 5;
    $current_checkbox_index = 0;
    و با استفاده از اونا در حلقه دوم مشکل رو رفع کردم.

  4. #4

    نقل قول: فرم html - php داینامیک

    نقل قول نوشته شده توسط parsidev مشاهده تاپیک
    این دوتا متغییر رو من اضافه کردم:
    کد HTML:
    $checkboxs_in_row = 5;
    $current_checkbox_index = 0;
    و با استفاده از اونا در حلقه دوم مشکل رو رفع کردم.
    سلام ممنون.من کد را تست کردم خطا میده . اوکی نشده مثل اینکه

تاپیک های مشابه

  1. اضافه کردن یک صفحه ی html بصورت داینامیک
    نوشته شده توسط zshojaee در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: چهارشنبه 19 دی 1386, 20:29 عصر
  2. خروجی متغیر در اشیاء فرم HTML
    نوشته شده توسط Mah در بخش PHP
    پاسخ: 2
    آخرین پست: جمعه 18 آبان 1386, 17:16 عصر
  3. دسترسی به اجزای فرم html
    نوشته شده توسط mmehdyt در بخش ASP.NET Web Forms
    پاسخ: 3
    آخرین پست: سه شنبه 05 تیر 1386, 16:40 عصر
  4. پاسخ: 2
    آخرین پست: یک شنبه 26 شهریور 1385, 15:42 عصر
  5. چاپ فرم در PHP
    نوشته شده توسط ArtCom در بخش PHP
    پاسخ: 4
    آخرین پست: پنج شنبه 02 شهریور 1385, 09:49 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •