Javascript自动完成功能不适用于空格
im具有在数据库字段(名称)中搜索的自动完成功能 如果我的字段=john,并且我键入“joh”,则自动完成工作正常。 但是 如果我的字段=约翰·马歇尔,并且我键入“joh”或任何东西,则自动完成不起作用 有什么想法吗?非常感谢 我的代码: index.phpJavascript自动完成功能不适用于空格,javascript,php,jquery,Javascript,Php,Jquery,im具有在数据库字段(名称)中搜索的自动完成功能 如果我的字段=john,并且我键入“joh”,则自动完成工作正常。 但是 如果我的字段=约翰·马歇尔,并且我键入“joh”或任何东西,则自动完成不起作用 有什么想法吗?非常感谢 我的代码: index.php <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> <script sr
<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>
$(文档).ready(函数(){
$(“#矩阵”)。自动完成({
来源:“searchalumno.php”,
最小长度:2
});
$(“#矩阵”).focusout(函数(){
$.ajax({
url:'alumno.php',
类型:'POST',
数据类型:'json',
数据:{matricula:$('#matricula')}
}).完成(功能(respuesta){
$(“#nombre”).val(分别为nombre);
$(“#paterno”).val(respuesta.paterno);
$(“#马特诺”).val(代表马特诺);
});
});
});
母系:
名义:
帕特诺:
马特诺:
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() } })
在ajax请求中,使用输入值而不是输入对象:
$.ajax({ ... data:{ matricula: $('#matricula').val() } })
没有准备好的声明?只是连接?“你知道这里有一个很大的安全漏洞吗?”DenysSéguret评论值得回应。您真的很想了解SQL注入攻击,以及为什么不应该编写/使用获取原始用户数据的代码。这就是网站被黑客入侵和接管的原因。也就是说,你需要开始自己的调试。使用浏览器的控制台并查看“网络”选项卡。检查返回的数据,看看错误是在JavaScript端还是在PHP端。查看此处是否列出了任何错误。@DenysSéguret是的,但这是一个本地局域网应用程序,没有互联网和风险。谢谢。@gmyb从多年的经验中吸取教训。“本地局域网应用程序”习惯于发展成更大的东西——或者代码在没有准备的情况下重复使用?只是连接?“你知道这里有一个很大的安全漏洞吗?”DenysSéguret评论值得回应。您真的很想了解SQL注入攻击,以及为什么不应该编写/使用获取原始用户数据的代码。这就是网站被黑客入侵和接管的原因。也就是说,你需要开始自己的调试。使用浏览器的控制台并查看“网络”选项卡。检查返回的数据,看看错误是在JavaScript端还是在PHP端。查看此处是否列出了任何错误。@DenysSéguret是的,但这是一个本地局域网应用程序,没有互联网和风险。谢谢。@gmyb从多年的经验中吸取教训。“本地局域网应用程序”有一个习惯,就是发展成更大的东西——或者代码在没有任何限制的情况下重复使用。