флажок сохранить нулевое значение в базе данных - PullRequest
0 голосов
/ 21 июня 2019

Я сохраняю значение флажка в базе данных, первое значение флажка (категории) сохранит правильное значение, но значение второго флажка (sub_category) сохранится в базе данных как ноль.Категория магазина вроде 1,2.Но в подкатегории хранится нулевое значение. Я хочу сохранить то же, что и категория, например 1,2,3.

table_business={id`,`business_id`,`business_name`, `business_pic`,`address`, `email`,`mobile`,`contact_number`,`website`,`business_work_photo`, `category_id`,
  `sub_category_id`}

Функция

public function insertBusinessDetails(Request $req)
{
    $mytime = Carbon::now();
    $business_id = DB::table('table_business_registration')->orderby('id', 'DESC')->first();

    $created_at = $mytime->toDateTimeString();
    $updated_at = $mytime->toDateTimeString();
    $name_of_business = $req->input('business_name');
    $address = $req->input('address');
    $mobile = $req->input('mobile');
    $contact_number = $req->input('contact_number');
    $category = implode(',', $req->input('category'));
    $sub_category = $req->input('sub_category');
    $email = $req->input('email');
    $website = $req->input('website');

    if ($business_id == NULL) {

        $query_insert = array(
            "business_id" => 1, "business_name" => $name_of_business, "address" => $address, "mobile" => $mobile,
            "contact_number" => $contact_number, "email" => $email, "website" => $website, "category_id" => $category,
            "sub_category_id" => $sub_category, "updated_at" => $updated_at, "created_at" => $created_at
        );
        DB::table('table_business_registration')->insert($query_insert);
    } else {
        $new_business_id = $business_id->business_id + 1;
        $query_insert = array(
            "business_name" => $name_of_business, "address" => $address, "mobile" => $mobile,
            "contact_number" => $contact_number, "email" => $email, "website" => $website, "category_id" => $category,
            "sub_category_id" => $sub_category, "updated_at" => $updated_at, "created_at" => $created_at
        );
        DB::table('table_business_registration')->insert($query_insert);
    }
}

Blade

 <div class="row mt-3">
               <div class="col-sm-6">
                  <label for="category" class="">Category</label>
                </div>
              <div class="col-sm-4">
              @foreach($category_list as $category)
               <div class="form-check form-check-inline">
                    <input class="form-check-input category" type="checkbox" id="category" name="category[]" value="{{$category->category_id}}">
                    <label class="form-check-label" for="category" style="float: left;">{{$category->category}}</label>
              </div>
              @endforeach
              </div>
        </div>
        <div class="row mt-3">
             <div class="col-sm-6">
                 <label for="subcategory" class="">Sub-Category</label>

             </div>
            <div class="col-sm-4">
                 <div class="form-check form-check-inline">
                     <div class="sub_category_of_ multi" id="sub_category" name="sub_category">
                    </div>
                </div>
            </div>
      </div>

код запроса

<script type="text/javascript">
$(function () {
  $('.category').click(function() {
    var id = $(this).attr('value');
    if (this.checked) {
      if (id) {
        $.ajax({
          type:"GET",
          url: "{{url('getSubCategory')}}?category=" + id,
          success: function(res) {
            if (res) {
              $.each(res, function(key, value) {

                $("#sub_category").append('<input type="checkbox" value="' + key + '" class="sub_category_of_'+id+'">');
                $("#sub_category").append('<label class="sub_category_of_'+id+'">'+ value + '</label>');
              });

            } else {
              // Handle the error case here without removing an existing elements
            }
          }
        });
      } else {
         // Handle the error case here
      }
    }
    else
    {
      // Remove the unchecked category checkbox if available
      if (id && $('.sub_category_of_'+id).length) {
        $('.sub_category_of_'+id).remove();
      }
    }
  });
});
</script>

Ответы [ 2 ]

1 голос
/ 21 июня 2019

Вы должны добавить атрибут 'name' в свои флажки sub_category, чтобы передать значение sub_category на другой конец.

Замените свой код следующим кодом:

$(function () {
  $('.category').click(function() {
    var id = $(this).attr('value');
    if (this.checked) {
      if (id) {
        $.ajax({
          type:"GET",
          url: "{{url('getSubCategory')}}?category=" + id,
          success: function(res) {
            if (res) {
              $.each(res, function(key, value) {

                $("#sub_category").append('<input type="checkbox" value="' + key + '" class="sub_category_of_'+id+'" name="sub_category[]"'); // name attribute added
                $("#sub_category").append('<label class="sub_category_of_'+id+'">'+ value + '</label>');
              });

            } else {
              // Handle the error case here without removing an existing elements
            }
          }
        });
      } else {
         // Handle the error case here
      }
    }
    else
    {
      // Remove the unchecked category checkbox if available
      if (id && $('.sub_category_of_'+id).length) {
        $('.sub_category_of_'+id).remove();
      }
    }
  });
});
0 голосов
/ 21 июня 2019

Ваш код плохой.Вам следует использовать Laravel Relationships для хранения в базе данных информации о категориях и связях с этим.Затем вы можете рендерить категории без дополнительного запроса по ajax.Что касается недопустимых значений в поле sub_category, вам не следует блокировать это, так как вы можете получить проблему, если у вас нет подкатегории в категории, но если вам нужно, вы можете добавить значение по умолчанию в базу данных. О таблице table_business_registration не следует делатьинкремент php в поле business_id, вы можете сделать это автоинкремент в базе данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...