-
Conteúdo Similar
-
Por RafaelScharf
Olá, sou inciante em desenvolvimento e estou trabalhando em um sistema de ponto de venda.
Quando faço a busca para vincular o cliente na venda ele da erro na requisição Ajax.
Quando faço a busca retorna o seguinte erro no console:
GET http://localhost/aroeira/distribuidora/emporium/customers/suggestions?term=R&limit=10&_=1569833733307 404 (Not Found) [Deprecation] Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check https://xhr.spec.whatwg.org/. Veja o código da view/default/pos/add.php
<?php if ($this->input->get('customer')) {?> if (!localStorage.getItem('positems')) { localStorage.setItem('poscustomer', <?=$this->input->get('customer');?>); } else if (!localStorage.getItem('poscustomer')) { localStorage.setItem('poscustomer', <?=$customer->id;?>); } <?php } else {?> if (!localStorage.getItem('poscustomer')) { localStorage.setItem('poscustomer', <?=$customer->id;?>); } <?php } ?> if (!localStorage.getItem('postax2')) { localStorage.setItem('postax2', <?=$Settings->default_tax_rate2;?>); } $('.select').select2({minimumResultsForSearch: 7}); var cutomers = [{ id: <?=$customer->id;?>, text: '<?=$customer->company == '-' ? $customer->name : $customer->company;?>' }]; $('#poscustomer').val(localStorage.getItem('poscustomer')).select2({ minimumInputLength: 1, data: [], initSelection: function (element, callback) { $.ajax({ type: "get", async: false, url: "<?=site_url('customers/getCustomer')?>/" + $(element).val(), dataType: "json", success: function (data) { callback(data[0]); } }); }, ajax: { url: site.base_url + "customers/suggestions", dataType: 'json', quietMillis: 15, data: function (term, page) { return { term: term, limit: 10 }; }, results: function (data, page) { if (data.results != null) { return {results: data.results}; } else { return {results: [{id: '', text: 'No Match Found'}]}; } } } }); if (KB) { display_keyboards(); var result = false, sct = ''; $('#poscustomer').on('select2-opening', function () { sct = ''; $('.select2-input').addClass('kb-text'); display_keyboards(); $('.select2-input').bind('change.keyboard', function (e, keyboard, el) { if (el && el.value != '' && el.value.length > 0 && sct != el.value) { sct = el.value; } if(!el && sct.length > 0) { $('.select2-input').addClass('select2-active'); $.ajax({ type: "get", async: false, url: "<?=site_url('customers/suggestions')?>/" + sct, dataType: "json", success: function (res) { if (res.results != null) { $('#poscustomer').select2({data: res}).select2('open'); $('.select2-input').removeClass('select2-active'); } else { bootbox.alert('no_match_found'); $('#poscustomer').select2('close'); $('#test').click(); } } }); } }); }); $('#poscustomer').on('select2-close', function () { $('.select2-input').removeClass('kb-text'); $('#test').click(); $('select, .select').select2('destroy'); $('select, .select').select2({minimumResultsForSearch: 7}); }); $(document).bind('click', '#test', function () { var kb = $('#test').keyboard().getkeyboard(); kb.close(); //kb.destroy(); $('#add-item').focus(); }); } Veja o código do controller Costumer/suggestion
function suggestions($term = NULL, $limit = NULL) { // $this->sma->checkPermissions('index'); if ($this->input->get('term')) { $term = $this->input->get('term', TRUE); } if (strlen($term) < 1) { return FALSE; } $limit = $this->input->get('limit', TRUE); $rows['results'] = $this->companies_model->getCustomerSuggestions($term, $limit); return $this->sma->send_json($rows); } veja agora a model company_model.php
public function getCustomerSuggestions($term, $limit = 10) { $this->db->select("id, (CASE WHEN company = '-' THEN name ELSE CONCAT(company, ' (', name, ')') END) as text", FALSE); $this->db->where(" (id LIKE '%" . $term . "%' OR name LIKE '%" . $term . "%' OR company LIKE '%" . $term . "%' OR email LIKE '%" . $term . "%' OR phone LIKE '%" . $term . "%') "); $q = $this->db->get_where('companies', array('group_name' => 'customer'), $limit); if ($q->num_rows() > 0) { foreach (($q->result()) as $row) { $data[] = $row; } return $data; } } Ja tentei alterar o async: false para async: true e não funcionou.
-