Maison > Questions et réponses > le corps du texte
J'ai essayé d'ajouter le produit au panier en scannant le code-barres. Dans common.js j'ai ajouté
$('body').on('keydown', '#form-for-saler-add-to-cart', function(e) { if (e.keyCode == 13) { function getIdByEan(ean) { $.ajax({ type: "POST", url: 'index.php?route=checkout/cart/getIdByEan', data: ean, success: function(data) { // Run the code here that needs // to access the data returned return data; } }); } idbyean = getIdByEan($(this).val()); console.log($(this).val()); console.log(idbyean); cart.add(idbyean); // cart.add($(this).val()); $(this).val(''); $(this).html(''); } });
Ajouter une fonctionnalité dans contrôleur/checkout/cart.php :
public function getIdByEan() { $this->load->model('catalog/product'); if (isset($this->request->post['ean'])) { $product_id = (int)$this->model_catalog_product->productIDByEan($this->request->post['ean']); } else { $product_id = 0; } $this->request->post['product_id'] = $product_id; }
et model/catalog/product.php
public function productIDByEan($ean) { $query = $this->db->query("select product_id from " . DB_PREFIX . "product where ean = '" . $this->db->escape($ean) . "'"); return $query->row['product_id']; }
Mais je suis considéré comme indéfini. Qu'ai-je fait de mal?
P粉9680081752024-04-01 13:04:54
Je l'ai résolu. En commun.js
$('body').on('keydown', '#form-for-saler-add-to-cart', function(e) { if (e.keyCode == 13) { getIdByEan($(this).val()); $(this).select(); } }); function getIdByEan (ean) { console.log(ean); $.ajax({ type: 'post', url: $('base').attr('href')+'index.php?route=checkout/cart/getIdByEan', data: {'ean': ean}, success: function(response) { if (response == 0 || !response) {alert('Товар '+ean+' НЕ НАЙДЕН!')} console.log(response) cart.add(response); }, }); }
Dans contrôleur/checkout/cart.php
public function getIdByEan() { $this->load->model('catalog/product'); if (isset($this->request->post['ean'])) { $product_id = (int)$this->model_catalog_product->productIDByEan($this->request->post['ean']); } else { $product_id = 0; } $this->response->setOutput($product_id); }
Dans modèle/catalogue/product.php
public function productIDByEan($ean) { $query = $this->db->query("select product_id from " . DB_PREFIX . "product where ean = '" . $this->db->escape($ean) . "'"); return $query->row['product_id']; }