Javascript 自动完成功能不适用于空格

标签 javascript php jquery

我有一个在数据库字段(名称)中搜索的自动完成功能。

如果我的字段 = john,并且我输入“joh”自动完成功能正常。 但 如果我的字段 = john marshall,并且我输入“joh”或其他内容,则自动完成功能不起作用。

有什么想法吗?非常感谢。

我的代码:

index.php

   <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
    <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/jquery-ui.min.js"></script>
    <link href="css/jqueryui.css" type="text/css" rel="stylesheet"/>
    <script>
        $(document).ready(function(){   
            $( "#matricula" ).autocomplete({
                source: "searchalumno.php",
                minLength: 2
            });

            $("#matricula").focusout(function(){
                $.ajax({
                    url:'alumno.php',
                    type:'POST',
                    dataType:'json',
                    data:{ matricula:$('#matricula')}
                }).done(function(respuesta){
                    $("#nombre").val(respuesta.nombre);
                    $("#paterno").val(respuesta.paterno);
                    $("#materno").val(respuesta.materno);
                });
            });                         
        });
    </script>

</head>
<body>

    <form>
        <label for="matricula">Matricula:</label>
        <input type="text" id="matricula" name="matricula" value=""/>
        <label for="nombre">Nombre:</label>
        <input type="text" id="nombre" name="nombre" value=""/>
        <label for="paterno">Paterno:</label>
        <input type="text" id="paterno" name="paterno" value=""/>
        <label for="materno">Materno:</label>
        <input type="text" id="materno" name="materno" value=""/>
    </form>
</body>

alumno.php:

<?php

$conexion = new mysqli('servidor','usuario','password','basedatos',3306);
$matricula = $_POST['matricula'];
$consulta = "select nombre, paterno, materno FROM tblalumno WHERE matricula = '$matricula'";

$result = $conexion->query($consulta);

$respuesta = new stdClass();
if($result->num_rows > 0){
    $fila = $result->fetch_array();
    $respuesta->nombre = $fila['nombre'];
    $respuesta->paterno = $fila['paterno'];
    $respuesta->materno = $fila['materno'];     
}
echo json_encode($respuesta);

?>

搜索校友:

<?php
$conexion = new mysqli('servidor','usuario','password','basedatos',3306);
$matricula = $_GET['term'];
$consulta = "select matricula FROM tblalumno WHERE matricula LIKE '%$matricula%'";

$result = $conexion->query($consulta);

if($result->num_rows > 0){
    while($fila = $result->fetch_array()){
        $matriculas[] = $fila['matricula'];     
    }
    echo json_encode($matriculas);
}
?>

最佳答案

在您的ajax请求中,使用输入值而不是输入对象:

  $.ajax({ ... data:{ matricula: $('#matricula').val() } })

关于Javascript 自动完成功能不适用于空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37415434/

相关文章:

javascript - jQuery获取特定的选项标签文本

javascript - 在 jqgrid 的隐藏字段中添加表单选项(colspos 和 rowspos)

javascript - AngularJS:如何激活 ngRepeat 中的第一个非零项?

javascript - 你如何编写 mybind 的代码

php - 对 json_encoded 数据执行 sql 查询,例如过滤器

php - 查询相关产品

php - MySQL 中的单数或复数单词搜索

javascript - 用javascript播放声音

javascript - Jquery 列表框更改事件不会在键盘滚动时触发

javascript - 如何使用 javascript 通过快捷方式单击按钮而不导致页面重新加载