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

السؤال

نشر

سلام عليكم

في هذه الصفحة يقوم المستخدم بكتابة رقم مثلا 2 في خانة الموردين فيظهر له عدد 2 قائمة منسدلة بها محتويات بنود التوريد ليقوم باختيارها و ربطها بهذا المورد

                    <!-- items -->
                    <div class="main-card mb-3 card">
                        <div class="card-body text-center">
                            <h3 class="card-title">بنود التوريد</h3>
                            <div class="form-row items">

                                <div id="itemsCountDiv" class="col-12">

                                    <label class="required">عدد الخامات التي تقوم هذه الشركة بتوريدها </label>

                                    <div class="input-group">

                                        <div class="input-group-prepend">

                                            <span class="input-group-text" id="inputGroupPrepend"><i class="fa fa-th"></i></span>

                                        </div>

                                        <input type="number" min="1" max="24" class="form-control items-count" value="0" >

                                        <div class="input-group-append">

                                            <button type="button" class="btn btn-success items-count-btn">إضافة</button>

                                        </div>

                                    </div>

                                </div>


                            </div>

                        </div>
                    </div>

و هذا سكربت تعريف و تمرير المتغيرات

'use strict';
        window.addEventListener('load', function() {
            var forms = document.getElementsByClassName('needs-validation');
            var validation = Array.prototype.filter.call(forms, function(form) {
                form.addEventListener('submit', function(event) {
                    if (form.checkValidity() === false) {
                        event.preventDefault();
                        event.stopPropagation();
                        Swal.fire({
                            icon: 'error',
                            title: 'يرجى ملئ جميع الحقول المطلوبة',
                            confirmButtonText: 'حسنا',
                            showCloseButton: true
                        });
                    } else {

                        var ownerName = $(".ownerName").val(),
                            username = $(".username").val(),
                            ownerWhatsapp1 = $(".ownerWhatsapp").val(),
                            address = $(".address").val(),
                            email = $(".email").val(),
                            website = $(".website").val(),
                            phone = $(".phone").val(),
                            qr = $("#qr1").attr("src");

                       
                        var items=[];
                        var contacts = [];
                        var contact_job =[];
                        var contact_tel =[];
                        var branch_name =[];
                  

                  /*var file_data = $(".logo").prop('files')[0]; */

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

                        $(".contact-name").each(function() {
                            contacts.push($(this).val());
                        });

                        $(".contact-job").each(function() {
                            contact_job.push($(this).val());
                        });

                        $(".contact-tel").each(function() {
                            contact_tel.push($(this).val());
                        });

                        $(".branch-name").each(function() {
                            branch_name.push($(this).val());
                        });
                      

                        
                        var form_data = new FormData();

                        form_data.append('action', "add_user");
                        form_data.append('username', username);
                        form_data.append('ownerName', ownerName);
                        form_data.append('ownerWhatsapp', ownerWhatsapp1);
                        form_data.append('address', address);
                        form_data.append('email', email);
                        form_data.append('website', website);
                        form_data.append('qr', qr);
                        /*form_data.append('logo', file_data);*/
                        form_data.append('phone', phone);
                        form_data.append('items',  JSON.stringify(items) );
                        form_data.append('contacts', JSON.stringify(contacts) );
                        form_data.append('contact_job', JSON.stringify(contact_job) );
                        form_data.append('contact_tel', JSON.stringify(contact_tel) );
                        form_data.append('branch_name', JSON.stringify(branch_name) );

                        $.ajax({
                            url: "modules/suppliers/add_exe.php",

                            dataType: 'text',

                            cache: false,

                            contentType: false,

                            processData: false,

                            data: form_data,

                            type: 'post',

                            success: function(data) {
                                if (data == "done") {
                                    Swal.fire({
                                        icon: 'success',
                                        title: 'احسنت ، لقد قمت بتسجيل المورد بنجاح',
                                        confirmButtonText: 'حسنا',
                                        showCloseButton: true
                                    }).then((result) => {
                                        if (result.isConfirmed) {
                                            location.href = "add_suppliers.php";
                                        }
                                    })
                                } else {
                                    Swal.fire({
                                        icon: 'error',
                                        title: 'حدث خطأ حاول مجددا',
                                        confirmButtonText: 'حسنا',
                                        showCloseButton: true
                                    });
                                    console.log(data);
                                }
                            }
                        });
                    }
                    form.classList.add('was-validated');
                }, false);
            });
        }, false);
    })();

و هذه سكربت الضغط على زر اضافة

 // Add Multi items fields after setting a number
    $(".items-count-btn").click(function () {

        var count = $(".items-count").val();

        if (count>0){

            $(".co").remove();

            var col_inputs = '';

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

                col_inputs += `
                <div class="form-row items col">
                                    <div class="col co">
    <div class="form-group">
      <label for="sel1">اختر مورد</label>
      <select class="form-control items" id="sel1">
 <?php

$result = $conn->query("SELECT * FROM supplying_items");

 while ($row = $result->fetch_assoc()) {

echo '<option value="' . $row['name'] . '">' . $row['name'] . '</option>';

}

 ?>

      </select>

                     
                                        </div>
                                    </div>
                                    
                                   
                                </div>
                    `;

            }
            $(this).parent().parent().parent().after(col_inputs);

            colorsStatus = true;

        }


        //console.log($(".color-degree"));

    });

و اخيرا هذا هو ملف الاستعلام و التنفيذ

<?php

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

//var_dump($_POST);exit;

$action = $_POST['action'];

switch ($action){

    case 'add_qr':

        $data = $_POST['data'];

        $res  = getQRCode($data);

        if ($res) {
            echo $res;
        }
        else
            echo '';

        break;

    case 'check_user':

        $username = $_POST['username'];

        $result = $conn->query("SELECT * FROM suppliersdb WHERE username ='$username' ");

        $num = mysqli_num_rows($result);

        if ($num == 0) {
            echo  "ok";
        }
        else
            echo "no";

        break;

    case 'add_user':


       // $res = upload_image('suppliersdb',$_FILES['logo'],60,60);

       // if (!empty($res)){
           // if ($res['code'] == 1){
             //   $logo = $res['name'];
          //  }
       // }

        $ownerName = $_POST['ownerName'];

        $username = $_POST['username'];

        $ownerWhatsapp1 = $_POST['ownerWhatsapp'];

        $address = $_POST['address'];

        $email = $_POST['email'];

        $website = $_POST['website'];

        $phone = $_POST['phone'];

        $qr = $_POST['qr'];

        $items = json_decode($_POST['items']) ;

      $contacts = json_decode($_POST['contacts']) ;

        $contact_tel = json_decode($_POST['contact_tel']) ;

        $contact_job = json_decode($_POST['contact_job']) ;

        $branch_name = json_decode($_POST['branch_name']) ;

//        var_dump($model_name);exit;

$result = $conn->query("INSERT INTO suppliersdb(
            
            username,
            
            owner_name, 
          
            address, 
          
            ownerWhatsapp,
          
            email,
           
            website,
            
            phones,
             
        
              
                   
            qr )
                    
                     VALUES (
                         
            '$username',
                         
            '$ownerName','
                         
             $address',
                         
            '$ownerWhatsapp1',
                         
            '$email',
                         
            '$website',
                         
            '$phone',
                         
                                  
            '$qr'
                         
            )");

        if ($result) {

            $last_id = $conn->insert_id;

            if (sizeof($items) > 0){

                $query = "INSERT INTO supply_item (supplier_id, item) VALUES ";

                foreach ($items as $k => $v){

                    $query.= "('$last_id','$v')";

                    if ($k !== sizeof($items) -1) {
                        $query .= ',';
                    } else {
                        $query .= ';';
                    }

                }

                $result = $conn->query($query);

                if (!$result){
                    echo "Error: " .  "<br>" . $conn->error;
                }

            }

            if (sizeof($contacts) > 0){

                $query = "INSERT INTO suppliers_contacts (supplier_id, name, job, tel, branch) VALUES ";

                foreach ($contacts as $k => $v){

                    $query.= "('$last_id','$v','$contact_job[$k]','$contact_tel[$k]','$branch_name[$k]')";

                    if ($k !== sizeof($contacts) -1) {
                        $query .= ',';
                    } else {
                        $query .= ';';
                    }

                }

                $result = $conn->query($query);

                if (!$result){
                    echo "Error: " .  "<br>" . $conn->error;
                }

            }

            echo "done";

        }else {

            echo $conn->error;

        }




        break;

    case 'edit_user':

        $id = $_POST['id'];

        $ownerName = $_POST['ownerName'];

        $username = $_POST['username'];

        $factory = $_POST['factory'];

        $shop = $_POST['shop'];

        $tax = $_POST['tax'];

        $active = $_POST['active'];

        $ownerWhatsapp1 = $_POST['ownerWhatsapp'];

        $address = $_POST['address'];

        $email = $_POST['email'];

        $website = $_POST['website'];

        $name = $_POST['name'];

        $idT = $_POST['idT'];

        $nId = $_POST['nId'];

        $phone2 = $_POST['phone2'];

        $whatsapp = $_POST['whatsapp'];

        $email2 = $_POST['email2'];

        $name2 = $_POST['name2'];

        $work = $_POST['work'];

        $whatsapp3 = $_POST['whatsapp3'];

        $email3 = $_POST['email3'];

        $phones = $_POST['phones'];

        $qr = $_POST['qr'];

        $model_factory = json_decode($_POST['model_factory']);

        $model_name = json_decode($_POST['model_name']);

        $contacts = json_decode($_POST['contacts']);

        if (isset($_FILES['logo'])){
            $res = upload_image('suppliersdb',$_FILES['logo'],60,60);
            if (!empty($res)){
                if ($res['code'] == 1){
                    $logo = $res['name'];
                }
            }
        } else {
            $logo = $_POST['logo'];
        }

        $query = 'UPDATE suppliersdb SET ';

        $query.= 'username="'.$username.'",';
        $query.= 'logo="'.$logo.'",';
        $query.= 'ownerName="'.$ownerName.'",';
        $query.= 'factory="'.$factory.'",';
        $query.= 'reg="'.$shop.'",';
        $query.= 'tax="'.$tax.'",';
        $query.= 'active="'.$active.'",';
        $query.= 'ownerWhatsapp="'.$ownerWhatsapp1.'",';
        $query.= 'address="'.$address.'",';
        $query.= 'email="'.$email.'",';
        $query.= 'website="'.$website.'",';
        $query.= 'phones="'.$phones.'",';
        $query.= 'owner="'.$name.'",';
        $query.= 'idT="'.$idT.'",';
        $query.= 'idNum="'.$nId.'",';
        $query.= 'phone="'.$phone2.'",';
        $query.= 'whatsapp="'.$whatsapp.'",';
        $query.= 'email2="'.$email2.'",';
        $query.= 'name="'.$name2.'",';
        $query.= 'work="'.$work.'",';
        $query.= 'whatsapp2="'.$whatsapp3.'",';
        $query.= 'email3="'.$email3.'",';
        $query.= 'qr="'.$qr.'" ';

         $query.= 'WHERE id='.$id.' ';


        $result = $conn->query($query);
        while (mysqli_next_result($conn)){;}

        if ($result) {


            $q = "DELETE FROM suppliers_contacts WHERE supplier_id=". $id . "; "
            ."DELETE FROM supply_item WHERE supplier_id=". $id . "; ";

            $result = $conn->multi_query($q);

            while (mysqli_next_result($conn)){;}



            if (sizeof($contacts) > 0){

                $query = "INSERT INTO suppliers_contacts (supplier_id, name) VALUES ";

                foreach ($contacts as $k => $v){

                    $query.= "('$id','$v')";

                    if ($k !== sizeof($contacts) -1) {
                        $query .= ',';
                    } else {
                        $query .= ';';
                    }

                }

                $result = $conn->query($query);

                if (!$result){
                    echo "Error: from 2ed insert" .  "<br>" . $conn->error;
                }

            }
            if (sizeof($model_name) > 0){

                $query = "INSERT INTO supply_item (supplier_id, name, factory) VALUES ";

                foreach ($model_name as $k => $v){

                    $query.= "('$id','$v','$model_factory[$k]')";

                    if ($k !== sizeof($model_name) -1) {
                        $query .= ',';
                    } else {
                        $query .= ';';
                    }

                }

                $result = $conn->query($query);

                if (!$result){
                    echo "Error from 1st insert: " .  "<br>" . $conn->error;
                }


            }


            echo "done";
        }
        else {
            echo $conn->error ."\n Query:" ;
            var_dump($query);
        }


        break;

    case 'delete_user':

        $id = $_POST['id'];

        $result = $conn->query("UPDATE suppliersdb SET deleted=1 WHERE id='$id' ");


        if ($result) {

            echo "done";

        }

        break;

    case 'update_textiles_caring':

        $id = $_POST['id'];
        $title = $_POST['title'];

        $result = $conn->query("UPDATE textiles_caring  SET title='$title' WHERE id='$id' ");


        if ($result == true) {

            echo "done";

        }

        break;


    default:
        echo "";
}

الدنيا شغاله تمام لكن بمجرد ما اضيف بنود التوريد تتضاف عادي لكن بينضاف معاها حقول فاضية بتتربط باي دي المورد

زي ما في الصورة

2021-06-03_17-17-43.thumb.png.6f3e5299d41e7a0e374e9cc9fab7b1ba.png

 

ايه الحل ؟

Recommended Posts

  • 0
نشر
بتاريخ منذ ساعة مضت قال محمد المصري5:

هل من متابع

مرحبا محمد،

تأكد هل أنت تقوم بدمج استعلامين سويا في نفس المتحول query:

وفي جزء:

    case 'add_user':

أمن تقوم ب 3 استعلامات، الأول بدون شرط و الثاني و الثالث مع شرط. الشرط خطأ.

واستبدل الشرطين:

لأن الحالة الأولى لا تختبر الشرط بدقة.

if ($result)
=>
if ($result->num_rows > 0)
أو
if (mysqli_num_rows($result) > 0)

واستبدل:

لأنها مصفوفة فهكذا نعد العناصر

if (sizeof($contacts)
=>

if (count ($contacts) )

 

  • 0
نشر
بتاريخ 43 دقائق مضت قال محمد المصري5:

لما غيرت الشرط اخي الفاضل ظهرلي التالي في الكونسول

<br />
<b>Notice</b>:  Trying to get property 'num_rows' of non-object in <b>C:\xampp\htdocs\arabia\modules\suppliers\add_exe.php</b> on line <b>123</b><br />

حسنا عدل الشرط الآخر.

تختلف القيمة التي ترجعها استعلامات SQL ممكن أن تعيد قيمة بوليانية true/false أو البيانات الفعلية على شكل collection

مثلا إذا فشلت عملية insert تعيد false

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...