jquery 从CodeIgniter和 AJAX 请求中的数据库获取复选框值

r6l8ljro  于 2023-01-08  发布在  jQuery
关注(0)|答案(1)|浏览(113)

我正在尝试从数据库中获取book_active列(ENUM数据类型)的值。如果等于“Y”,则应选中复选框,否则,复选框值应为“N”。
jquery位:

`  function edit_book(id) {
    /*    var formData = $('#form').serialize();
        console.log('Posting the following: ', formData); */

    save_method = 'update';
    $('#form')[0].reset(); // reset form on modals
    $.ajax({ //Load data from ajax
      url: "<?php echo site_url('book/ajax_edit/') ?>" + id,
      type: "GET",
      dataType: "JSON",
      success: function(data) {
        $('[name="book_id"]').val(data.book_id);
        $('[name="book_isbn"]').val(data.book_isbn);
        $('[name="book_title"]').val(data.book_title);
        $('[name="book_author"]').val(data.book_author);
        $('[name="book_category"]').val(data.book_category);
        $('[name="book_date"]').val(data.book_date);
        $('#modal_form').modal('show'); // show bootstrap modal when loaded complete
        $('.modal-title').text('Edit Book'); // Set title to Bootstrap modal title
        $('#errors').addClass('d-none');
        var date_string = dayjs(data.book_date, "YYYY-MM-DD HH:mm:ss").format("DD.MM.YYYY, HH:mm"); //Format date in form
        $('[name="book_date"]').val(date_string);

        //  $('[name="book_active"]').val(data.book_active);
        if ($('[name="book_active"]').val(data.book_active) == 'Y') {
          $('[name="book_active"]').prop("checked", true).val();
        } else {
          $('[name="book_active"]').prop("checked", false).val();

        }

        /*
              var SlectedList = new Array();
              $("input.form-check:checked").each(function() {
                SlectedList.push($(this).val(data.book_active));
              });

            
                     if ($('[name="book_active"]').val() == 'Y') {
                       $('[name="book_active"]').prop("checked", true);
                     } else {
                       $('[name="book_active"]').prop("checked", false);
                     }

                    
                     if (val(data.book_active) != NULL) {
                       $('[name="book_active"]').prop("checked", true);

                     } else {
                       $('[name="book_active"]').prop("checked", false);
                     }
                     */

      },
      // complete: function() {
      //   alert('ajax completed!');
      // },
      error: function(jqXHR, textStatus, errorThrown) {
        alert('Error get data from ajax');
      }
    })
  }`

html中输入字段:

`<input name="book_active" id="book_active" type="checkbox" role="switch" class="form-check-input" <?= (isset($book->book_active)) ? set_checkbox('book_active', 'Y', false) : set_checkbox('book_active', 'N', false) ?>>`

我尝试了很多片段,但我卡住了。评论位不起作用。

gcuhipw9

gcuhipw91#

您对目标的描述“如果等于'Y',则应选中复选框,如果不等于,则复选框值应为'N'。”有点令人困惑。如果您希望根据data.book_active的值设置复选框的状态,则应执行以下操作:

$('[name="book_active"]').prop("checked", data.book_active == 'Y’)

如果值为“Y”,则选中复选框,如果为其他值,则清除复选框。

相关问题