Maison  >  Questions et réponses  >  le corps du texte

Comment obtenir product_id via ean via ajax et l'ajouter au panier ? Ouvrir le panier 3

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粉176980522P粉176980522225 Il y a quelques jours453

répondre à tous(1)je répondrai

  • P粉968008175

    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'];
    }

    répondre
    0
  • Annulerrépondre