اذهب إلى المحتوى
  • 0

[PHP] [jQuery] منع المطالبة بالمتغيرات الداخلة تحت شرط معين خارج هذا الشرط

محمد المصري12

السؤال

سلام عليكم

كود ال jQyery كالتالي 

 

<script>
  // Submit Threads
  (function() {

    'use strict';

    window.addEventListener('load', function() {

      var forms = document.getElementsByClassName('thread');



      var validation = Array.prototype.filter.call(forms, function(form) {

        form.addEventListener('submit', function(event) {

          if (form.checkValidity() === false) {

            event.preventDefault();

            event.stopPropagation();

          }

          else {


            //var id = $('.id').val();

            var id =[];

            var mPriceT = [];

            var supplier = [];

            var BakaraCost = [];

            var user = [];

            $(".id").each(function () {
              id.push($(this).val());
            });

            $(".bakara-cost").each(function () {
              BakaraCost.push($(this).val());
            });

            $(".mPriceT").each(function () {
              mPriceT.push($(this).val());
            });

            $(".supplier").each(function () {
              supplier.push($(this).val());
            });

            $(".user").each(function () {
              user.push($(this).val());
            });

            $.ajax({

              url: "quotation/run.php",

              dataType: 'text',

              data: {

                "action": "thread",

                "order": <?php echo $order_id; ?>,

                "id": id,

                "mPriceT": mPriceT,

                "BakaraCost": BakaraCost,

                "supplier": supplier,

                "user": user
              },

              type: 'post',

              success: function(data) {

                if (data == "done") {

                  Swal.fire({

                    icon: 'success',

                    title: 'تم اضافة السعر بنجاح',

                    confirmButtonText: 'اضغط لتحديث الصفحة',

                    showCloseButton: true

                  }).then((result) => {

                    if (result.isConfirmed) {

                      location.reload();

                    }

                  })
                } else {

                  Swal.fire({

                    icon: 'error',

                    title: 'حدث خطأ - راسل الدعم الفني',

                    confirmButtonText: 'حسنا',

                    showCloseButton: true

                  });

                  console.log(data);

                }

              }

            });

          }

          form.classList.add('was-validated');

        }, false);

      });

    }, false);

  })();
</script>


<!-- ADD RUBBER -->


<script>
  // Submit RUBBER
  (function(event) {

    'use strict';

    window.addEventListener('load', function() {

      var forms = document.getElementsByClassName('rubber-form');

      var validation = Array.prototype.filter.call(forms, function(form) {

        form.addEventListener('submit', function(event) {

          if (form.checkValidity() === false) {

            event.preventDefault();

            event.stopPropagation();

          }

          else {


            //var id = $('.id').val();

            var rubberID =[];

            var kgPrice = [];

            var mcp = [];

            var mPriceT = [];

            var supplier = [];
            //  var user = [];

            $(".rubberID").each(function () {
              rubberID.push($(this).val());
            });

            $(".kgPrice").each(function () {
              kgPrice.push($(this).val());
            });

            $(".mcp").each(function () {
              mcp.push($(this).val());
            });

            $(".mPriceT").each(function () {
              mPriceT.push($(this).val());
            });

            $(".supplier").each(function () {
              supplier.push($(this).val());
            });

            $.ajax({

              url: "quotation/run.php",

              dataType: 'text',

              data: {

                "action": "thread",

                "order": <?php echo $order_id; ?>,

                "rubberID": rubberID,

                "kgPrice": kgPrice,

                "mcp": mcp,

                "mPriceT": mPriceT,

                "supplier": supplier
              },

              type: 'post',

              success: function(data) {

                if (data == "done") {

                  Swal.fire({

                    icon: 'success',

                    title: 'تم اضافة السعر بنجاح',

                    confirmButtonText: 'اضغط لتحديث الصفحة',

                    showCloseButton: true

                  }).then((result) => {

                    if (result.isConfirmed) {

                      location.reload();

                    }

                  })
                } else {

                  Swal.fire({

                    icon: 'error',

                    title: 'حدث خطأ - راسل الدعم الفني',

                    confirmButtonText: 'حسنا',

                    showCloseButton: true

                  });

                  console.log(data);

                }

              }

            });

          }

          form.classList.add('was-validated');

        }, false);

      });

    }, false);

  })();
</script>

الكود السابق بمرر خلاله مجموعة من المتغيرات المعرفة في ملف html عشان في الباك اند ادخلها لقاعدة البيانات 

عندي بالكود السابق سكربتين واحد للنموذج المعرف بال classname  (thread) و التاني معرف بال classname (rubber) 

و دخلت متغيراتهم تمام و مررتها و فصلت بين الاتنين بالشرط action في اللي واخد نفس الاسم thread و rubber 

الان ارفق لحضراتكم كود ال php

<?php
declare(strict_types=1);

include('../includes/db.php');
include('../includes/functions.php');


$action = $_POST['action'];

if ($action == 'thread'){


//Define Variables
$order = $_POST['order'];
$id= $_POST['id'];
$mPriceT = $_POST['mPriceT'];
$supplier = $_POST['supplier'];
$BakaraCost = $_POST['BakaraCost'];
$user = $_POST['user'];

for ($i =0; $i < count($id); $i++){

$q = " UPDATE `order_threads` SET `mPrice` = '$mPriceT[$i]', `BakaraCost` = '$BakaraCost[$i]'  ,`factory` = '$supplier[$i]' , `user` = '$user[$i]'  WHERE `order_id` = $order  && `thread_id` = $id[$i] ;";

try
{
$result = $conn->query($q);
}

catch (Exception $e)
{
var_dump($e->getTrace());
// or to get the full error info, just
var_dump($e);
}

}

if ($result){
echo 'done';
}

}

if ($action == 'rubber'){

//Define Variables
        $order = $_POST['order'];
        $rubberID= $_POST['rubberID'];
        $kgPrice = $_POST['kgPrice'];
        $mcp = $_POST['mcp'];
        $mPriceT = $_POST['mPriceT'];
        $supplier = $_POST['supplier'];


       for ($i =0; $i < count($rubberID); $i++){

//            $q = " UPDATE `order_threads` SET `mPrice` = '$mPriceT[$i]', `BakaraCost` = '$BakaraCost[$i]'  ,`factory` = '$supplier[$i]' , `user` = '$user[$i]'  WHERE `order_id` = $order  && `thread_id` = $id[$i] ;";
           $rubber = "
UPDATE
    `order_rubbers`
SET
    `kgPrice` = '$kgPrice[$i]',
    `mcp` = '$mcp[$i]',
    `mPrice` = '$mPriceT[$i]',
    `factory` = '$supplier[$i]'
WHERE
    `order_id` = $order  && `rubber_id` = $rubberID[$i] ; ";
           try
           {
               $result = $conn->query($rubber);
           }
           catch (Exception $e)
           {
               var_dump($e->getTrace());
               // or to get the full error info, just
               var_dump($e);
           }

       }

        if ($result){
            echo 'done';
        }


}

 

عند التنفيذ في حالة if action = thread  السكربت بياخد الاوردر و بينفذه و بيديني رسالة النجاح و كله زي الفل

المشكلة بقا اني لما ينطلب منه ينفذ حالة  if action = rubber  بيرفض و بيطلب مني اعرفله المتغيرات اللي موجودة في الشرط الاول if action = thread اللي هو ملوش علاقة بيه اصلا

رسالة الكونسول

<br />
<b>Notice</b>:  Undefined index: id in <b>C:\xampp\htdocs\kaka\quotation\run.php</b> on line <b>15</b><br />
<br />
<b>Notice</b>:  Undefined index: BakaraCost in <b>C:\xampp\htdocs\kaka\quotation\run.php</b> on line <b>18</b><br />
<br />
<b>Notice</b>:  Undefined index: user in <b>C:\xampp\htdocs\kaka\quotation\run.php</b> on line <b>19</b><br />
<br />
<b>Warning</b>:  count(): Parameter must be an array or an object that implements Countable in <b>C:\xampp\htdocs\kaka\quotation\run.php</b> on line <b>21</b><br />
<br />
<b>Notice</b>:  Undefined variable: result in <b>C:\xampp\htdocs\kaka\quotation\run.php</b> on line <b>39</b><br />

 

طبعا الحوار ده له حل بدائي جدا و هو اني اعمل ملف php منفصل لكل شرط لكن طبعا ده مش منطقي

ايه الخطأ بتاعي اللي يخلي البرنامج يطالب بمتغيرات خارج حدود الشرط الموضوع له

مع شكري

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

تم اكتشاف الخلل الحمد لله

اسم ال action مكرر و بالتالي الشرط بينفذ اي شئ جواه ال thread ملوش دعوة باي شئ تاني

data: { "action": "thread",

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...