我尝试通过扫描条形码将产品添加到购物车。 在 common.js 中我添加了
$('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('');
}
});
在controller/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;
}
以及 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'];
}
但我得到 idbyean 为未定义。我做错了什么?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
我已经解决了。在common.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); }, }); }在控制器/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); }在 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']; }