搜索产品代码,但代码包含字母

fae0ux8s  于 2021-09-13  发布在  Java
关注(0)|答案(1)|浏览(235)

目前我正在使用它来按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”时,问题就开始了,我可以用什么来查找不包含数字字符的代码?

2w2cym1i

2w2cym1i1#

解决:我跟踪了控制台抛出的错误,问题出在我的模型中。
这是我的模特

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),现在可以工作了。

相关问题