Как исправить Uncaught SyntaxError: Неожиданный токен: - PullRequest
0 голосов
/ 18 апреля 2019

Я пытаюсь получить сообщение типа данных в контроллере, используя ajax, я пытаюсь установить прямой доступ, который приводит к тому, что данные контроллера успешно выходят из псевдонима. браузер, который заказал Uncaught SyntaxError: Unexpected tokens: как с этим справиться?

данные, которые успешно получены через прямой веб-доступ:

{
   "dataSparepartOffice":[
      {
         "tgl":"2019-04-16 00:00:00",
         "project":"MRTJ",
         "name":"Laptop",
         "sn":"12345",
         "qty":"5",
         "Keterangan":"Penerimaan Delivery Order"
      },
      {
         "tgl":"2019-04-16 00:00:00",
         "project":"MRTJ",
         "name":"Laptop",
         "sn":"12345",
         "qty":"1",
         "Keterangan":"Pemakaian Spare Part"
      },
      {
         "tgl":"2019-04-16 08:22:45",
         "project":"MRTJ",
         "name":"Laptop",
         "sn":"12345",
         "qty":"5",
         "Keterangan":"Request Order"
      }
   ]
}

Это моя функция в контроллере:

public function filterInOffice(){
    $sparepart = $this->input->post('sparepart');
    $data = $this->m_data->filterOffice($sparepart);
    $callback = array(
        'dataSparepartOffice' => $data,
    );
    echo json_encode($callback);
}

Это моя функция в моделях:

public function filterOffice($sparepart){
    $this->db->select('use_sparepart.tanggal as tgl , project, stock.name, use_sparepart.sn_use as sn, use_sparepart.qty_use as qty, "Pemakaian Spare Part" as Keterangan');
    $this->db->from('use_sparepart');
    $this->db->join('stock', 'stock.id_stock = use_sparepart.id_stock', 'left');
    $this->db->join('project', 'project.id_project = use_sparepart.id_project', 'left');
    $this->db->like('name', $sparepart, 'both');
    $query2 = $this->db->get_compiled_select();
    $this->db->select('delivery_order.tanggal as tgl , project, spare_part.name, delivery_order.sn_do as sn, delivery_order.qty_do as qty, "Penerimaan Delivery Order" as Keterangan');
    $this->db->from('delivery_order');
    $this->db->join('spare_part', 'spare_part.id_sparepart = delivery_order.id_sparepart', 'left');
    $this->db->join('project', 'project.id_project = delivery_order.id_project', 'left');
    $this->db->like('name', $sparepart, 'both');
    $query1 = $this->db->get_compiled_select();
    $this->db->select('request_order.created_at as tgl,  project, request_order.name, request_order.sn_ro as sn, request_order.qty_ro as qty, "Request Order" as Keterangan');
    $this->db->from('request_order');
    $this->db->join('project', 'project.id_project = request_order.id_project', 'left');
    $this->db->where('status != 0');
    $this->db->like('name', $sparepart, 'both');
    $this->db->order_by("tgl", "ASC");
    $query3 = $this->db->get_compiled_select();
    $query = $this->db->query($query1.' UNION '.$query2.' UNION '.$query3);
    return $query->result();
}

Это мои взгляды:

<tbody class="Office" id="show_dataaa">
   <?php if (!empty($dataSparepartOffice)) {  
     $no = 1;
      foreach($dataSparepartOffice as $key){
   ?>
   <tr>
      <td style='text-align: center'><?= $no++ ?></td>
      <td style='text-align: center'><?= $key->tgl ?></td>
      <td style='text-align: center'><?= $key->name ?></td>
      <td style='text-align: center'><?= $key->sn ?></td>
      <td style='text-align: center'><?= $key->qty ?></td>
      <td style='text-align: center'><?= $key->Keterangan ?></td>
   </tr>
   <?php } } else {?>
   <tr>
      <td style='text-align: center' colspan="6"><?= 'No Data in database' ?></td>
   </tr>
   <?php } ?></tbody>

это мой JS:

<script>
$(document).ready(function() {
    $("#btnSubmitOffice").click(function(){
        $(this).html("SEARCHING...").attr("disabled", "disabled");
        $.ajax({
            url     : <?php echo base_url('Control/filterInOffice') ?>,
            type    : 'POST',
            data    : { sparepart : $("#sparepartInput").val() },
            dataType: 'JSON',
            beforeSend: function(e) {
                if(e && e.overrideMimeType) {
                    e.overrideMimeType("application/json;charset=UTF-8");
                }
            },
            success: function(response){
                console.log(response);
                $("#btn-btnSubmitOffice").html("SEARCH").removeAttr("disabled");
                $("#show_dataaa").html(response.hasil);
            },
            error: function (xhr, ajaxOptions, thrownError) {
                alert(xhr.responseText);
            }
        });
    });
});
</script>

которую я хочу, чтобы данные занесли в таблицу, которую я предоставил в представлении

Ответы [ 2 ]

0 голосов
/ 18 апреля 2019

Внести изменения в запрос ajax

url     : "<?php echo base_url('Control/filterInOffice') ?>",
data    : { 'sparepart' : $("#sparepartInput").val() },

В функции success response.hasil будет неопределенным. Попробуйте это response.dataSparepartOffice

success: function(response){
     console.log(response);
     $("#btn-btnSubmitOffice").html("SEARCH").removeAttr("disabled");
     $("#show_dataaa").html(response.dataSparepartOffice);
} 
0 голосов
/ 18 апреля 2019

url нуждается в одинарных / двойных кавычках. Пожалуйста, попробуйте ввести response.dataSparepartOffice для доступа к json, который идет вместе с response в ajax=>success методе, потому что нет ничего похожего на hasil

<script>
$(document).ready(function() {
    $("#btnSubmitOffice").click(function(){
        $(this).html("SEARCHING...").attr("disabled", "disabled");
        $.ajax({
            url     : "<?php echo base_url('Control/filterInOffice') ?>",//changes
            type    : 'POST',
            data    : { sparepart : $("#sparepartInput").val() },
            dataType: 'JSON',
            beforeSend: function(e) {
                if(e && e.overrideMimeType) {
                    e.overrideMimeType("application/json;charset=UTF-8");
                }
            },
            success: function(response){
                console.log(response);
                $("#btn-btnSubmitOffice").html("SEARCH").removeAttr("disabled");
                $("#show_dataaa").html(response.dataSparepartOffice);//changes
            },
            error: function (xhr, ajaxOptions, thrownError) {
                alert(xhr.responseText);
            }
        });
    });
});
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...