محمد المصري12 نشر 6 يونيو 2022 أرسل تقرير نشر 6 يونيو 2022 السلام عليكم عندي مجموعة من الاختيارات منهم قوائم منسدلة الاختيارات دي نفسها بتكرر حسب اختيار المستخدم و بقوم بادخال بيانات قائمة منسدلة متعددة الاختيارات إلى قاعدة البيانات فيديو صغير توضيحي يشرح المشكلة 2022-06-06_13-34-29.mp4 الكود <div class="col-12 mb-2 row d-flex align-items-center threads-fields"> <div class="col-9" style="margin-bottom:20px"> <label class="h5 text-primary m7md1" style="margin-bottom:20px">اختيار الخيط</label> <div class="input-group"> <!-- قائمة اختيار الخيط --> <select class="form-control threads-value show-image p-0" required> <option selected readonly value="0" disabled>تحديد خيط حياكة</option> <?php $result = $conn->query("SELECT * FROM thread"); while ($row = $result->fetch_assoc()) { if (empty($row['name'])){ echo '<option type="threads" img="' . $row['image'] . '" value="' . $row['id'] . '">كود الخيط T' . $row['id'] . '/ لم يتم تسجيل اسم للخيط</option>'; } else { echo '<option class="text-danger" type="threads" img="' . $row['image'] . '" value="' . $row['id'] . '">كود الخيط T' . $row['id'] . '/ اسم الخيط - ' . $row['name'] . '</option>'; } } ?> </select> </div> </div> <!-- ##### عرض الصورة --> <div class="col-3 d-flex justify-content-center show-image" style="margin-bottom:20px"></div> <div class="col-2" style="margin-bottom:30px"> <label class="required">اختيار لون المرياج</label> <div class="input-group"> <!-- قائمة اختيار لون المرياج --> <select class="form-control m color_select_thread" multiple="multiple" required> <option value="" disabled selected >اختيار اللون</option> <!-- بداية استعلام الوان المرياجات --> <?php $meriag = "SELECT `patron_colors`.`id` AS pcID, `patron_colors`.`patron_id` AS pcPID, `patron_colors`.`color_name` AS pcCN, `patron_colors`.`color_count`AS pcCC FROM `patron_colors` INNER JOIN `patron` ON `patron`.`id` = `patron_colors`.`patron_id` INNER JOIN `orders` ON `orders`.`id` = `patron`.`order_id` WHERE `orders`.`id` =$order_id"; $result = $conn->query($meriag); while ($row = $result->fetch_assoc()) { echo '<option class="text-danger color_count_thread" type="buttons" value="' . $row['pcCC'] . ' "> ' . $row['pcCN'] . '</option>'; } ?> </select> </div> </div> <div class="col-2" style="margin-bottom:30px"> <label class="required">العدد</label> <div class="input-group"> <input type="text" class="form-control colorNumber_input_thread" required readonly> </div> </div> <div class="col-2" style="margin-bottom:30px"> <label class="required">عدد الامتار للقطعة</label> <div class="input-group"> <input type="number" step=".01" class="form-control countPiece_thread" required> </div> </div> <div class="col-2" style="margin-bottom:30px"> <label class="required">المجموع</label> <div class="input-group"> <input type="text" class="form-control border border-warning total_thread" required disabled> </div> </div> <div class="col-2" style="margin-bottom:30px"> <label class="required">نسبة السماح</label> <div class="input-group"> <input type="text" class="form-control border border-warning hadr_thread" required> </div> </div> <div class="col-2" style="margin-bottom:30px"> <label class="required">الإجمالي</label> <div class="input-group"> <input type="text" class="form-control border border-warning last_thread" required disabled> </div> </div> </div> كود التمرير JQuery <script> // Submit Threads (function() { 'use strict'; window.addEventListener('load', function() { var forms = document.getElementsByClassName('needs-validation-threads'); var validation = Array.prototype.filter.call(forms, function(form) { form.addEventListener('submit', function(event) { if (form.checkValidity() === false) { event.preventDefault(); event.stopPropagation(); } else { let threads = []; // تعريف نوع الخيط let colorSelect =[]; // تعريف لون المرياج $(".threads-value").each(function () { threads.push($(this).val()); }); // تمرير لون المرياج $(".color_select_thread option:selected").each(function() { let text = $(this).text(); if(text.indexOf(text) >= 0 && colorSelect.indexOf(text) < 0) { colorSelect.push(text); } else if(text.indexOf(text) < 0 && colorSelect.indexOf(text) >= 0) { colorSelect.splice(colorSelect.indexOf(text) , 1); } // colorSelect.push($(this).text()); }); console.log(threads); $.ajax({ url: "requests/ordersAddAccessories.php", dataType: 'text', data: { "action": "add_threads", "order": <?php echo $order_id; ?>, "threads": threads, "colorSelect": colorSelect, }, type: 'post', success: function(data) { if (data == "done") { Swal.fire({ icon: 'success', title: 'تمت الاضافة بفضل الله - قم بتحديث الصفحة بعد الانتهاء', confirmButtonText: 'حسنا', showCloseButton: true }).then((result) => { if (result.isConfirmed) { location.reload(); } }) console.log(data); } else { Swal.fire({ icon: 'error', title: 'حدث خطأ حاول مجددا', confirmButtonText: 'حسنا', showCloseButton: true }); console.log(data); } } }); } form.classList.add('was-validated'); }, false); }); }, false); })(); </script> كود الباك ايند $order = $_POST['order']; $colorSelect = $_POST['colorSelect']; $threads = $_POST['threads']; $hadr = $_POST['hadr']; $last = $_POST['last']; $colorNumber = $_POST['colorNumber']; $countPiece = $_POST['countPiece']; $total = $_POST['total']; // $result = $conn->query("DELETE FROM order_threads WHERE order_id='$order'"); for ($i =0; $i < count($threads); $i++){ // لتكرار القائمة حسب اختيار المستخدم foreach ($colorSelect AS $meriag){ //دالة التكرار لادخال بيانات القائمة المتعددة الاختيار $result = $conn->query("INSERT INTO order_threads( order_id, thread_id, color_select, colorNumber_input, countPiece, total, hadr, egmaly ) VALUES( '$order', '$threads[$i]', '$meriag', '$colorNumber[$i]', '$countPiece[$i]', '$total[$i]', '$hadr[$i]', '$last[$i]' )"); } } $result2 = $conn->query("UPDATE orders SET thread=1 WHERE id='$order'"); if ($result2){ echo 'done'; } اين الخطأ الذي وقعت فيه ؟ و لكم خالص الشكر اقتباس
0 Wael Aljamal نشر 10 يوليو 2022 أرسل تقرير نشر 10 يوليو 2022 عند التعامل مع بيانات ذات بنية معقدة، من الأفضل استخدام صيغة الكائنات في التعامل معها حيث تسهل علينا التعامل مع تعدد الخاصيات و ربطها مع الكائن الهدف لها، بالإضافة للمصفوفات لتجميع الكائنات المتشابهة. سيكون لدينا مصفوفة من النماذج و كل نموذج يحمل مواصفات المنتج الجزئي الخاص به. let order = [ { color: red thread: T1 }, { color: green thread: T1 }, { color: yellow thread: T3 }, {} ] let forms = [order1, order2] يمكن عمل كائن يمثل الخط و صفاته، و كائن يحمل عدة منتجات لنفس الطلبية، ثم عمل مصفوفة طلبيات. ثم في PHP يمكن عمل json_encode لعمل مصفوفة ترابطية فيها نفس بنية المعطيات و يمكن المرور عليها بسهولة. اقتباس
السؤال
محمد المصري12
السلام عليكم
عندي مجموعة من الاختيارات منهم قوائم منسدلة
الاختيارات دي نفسها بتكرر حسب اختيار المستخدم و بقوم بادخال بيانات قائمة منسدلة متعددة الاختيارات إلى قاعدة البيانات
فيديو صغير توضيحي يشرح المشكلة
2022-06-06_13-34-29.mp4
الكود
كود التمرير JQuery
كود الباك ايند
اين الخطأ الذي وقعت فيه ؟
و لكم خالص الشكر
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.