首页 > 解决方案 > 正在搜索产品代码,但代码中包含字母

问题描述

目前我正在使用它通过 id 查找产品。

function BuscarCodigo(e) {
    if (e.which == 13) {
        const codigo = document.getElementById("buscar_codigo").value;
        const url = document.getElementById("url").value;
        const urls = url + "Compras/buscar";
        $.ajax({
            url: urls,
            type: 'POST',
            data: {
                codigo
            },
            success: function (response) {
                if (response != 0) {
                    $("#error").addClass('d-none');
                    var info = JSON.parse(response);
                    document.getElementById("id").value = info.id;
                    document.getElementById("nombre").value = info.nombre;
                } else {
                    $("#error").removeClass('d-none');
                }
            }
        });
    }
}

这是我的html:

<div class="col-lg-3">
                    <div class="form-group">
                        <label for="buscar_codigo">Cógigo producto</label>
                        <input type="hidden" id="id" name="id">
                        <input id="buscar_codigo" onkeyup="BuscarCodigo(event);" class="form-control" type="text" name="codigo" placeholder="Código producto">
                        <span class="text-danger d-none" id="error">El producto no existe.</span>
                    </div>
                </div>
                <div class="col-lg-4">
                    <div class="form-group">
                        <label for="nombre">Producto</label>
                        <input id="nombre" class="form-control" type="hidden" name="nombre">
                        <br />
                        <strong id="nombreP"></strong>
                    </div>
                </div>

但它只能找到像“202324”这样的数字ID,当产品代码像“FADA111”时问题就开始了,我可以用什么来查找不只包含数字字符的代码?

标签: javascript

解决方案


已解决: 我遵循控制台抛出的错误中的错误,问题出在我的模型中。

这是我的模型

public function buscarProducto(int $codigo)
    {
        $this->codigo = $codigo;
        $sql = "SELECT * FROM productos WHERE codigo = '{$this->codigo}' AND estado = 1";
        $res = $this->select($sql);
        if (empty($res)) {
            $res = 0;
        }
        return $res;
    }

我改成这样:

public function buscarProducto(string $codigo)
    {
        $this->codigo = $codigo;
        $sql = "SELECT * FROM productos WHERE codigo = '{$this->codigo}' AND estado = 1";
        $res = $this->select($sql);
        if (empty($res)) {
            $res = 0;
        }
        return $res;
    }

我得到的值是(int $codigo),刚刚编辑为(string $codigo),现在可以工作了。


推荐阅读