问候,我正在使用PHP、Ajax和JQuery进行自动完成,该数据库由不断更改记录的SQL 数据库填充,并且使用该 Select 的选项我必须填写表单的几个文本字段,这些文本字段可能会或可能不会被用户名修改。我搜索了带有自动完成功能的示例,但没有显示任何结果。这是我到目前为止所拥有的:
用户界面
$(function() {
$("#plaza").autocomplete({
source: "pruebaPlaza.php",
select: function(event, ui) {
event.preventDefault();
$('#plaza').val(ui.item.plaza);
$('#clave_ct_necesidad').val(ui.item.clave_ct_necesidad);
$('#clave_ct_nomina').val(ui.item.clave_ct_nomina);
$('#clave_ct_analitico').val(ui.item.clave_ct_analitico);
$('#qna_ini').val(ui.item.qna_ini);
$('#qna_fin').val(ui.item.qna_fin);
$('#asignatura').val(ui.item.asignatura);
$('#observaciones').val(ui.item.observaciones);
}
});
});
<div class="ui-widget">
Plaza: <input id="plaza">
<br>
Centro de Trabajo con Necesidad: <input type="text" id="clave_ct_necesidad'">
<br>
Centro de Trabajo Nómina: <input type="text" id="clave_ct_nomina" >
<br>
Centro de Trabajo Analítico: <input type="text" id="clave_ct_analitico" >
<br>
Quincena de inicio: <input type="text" id="qna_ini" >
<br>
Quincena de término: <input type="text" id="qna_fin">
<br>
Asignatura: <input id="asignatura">
<br>
Observaciones: <input id="observaciones">
自动完成脚本
<?php
if (isset($_GET['term'])){
include ('config.php');
$return_arr = array();
/* Si la conexión a la base de datos , ejecuta instrucción SQL. */
$searchTerm = $_GET['term'];
$sql = "SELECT * FROM dbo.propuesta_vacancias where plaza like '%".$searchTerm."' ";
$stmt=sqlsrv_query($dbcon, $sql);
/* Recuperar y almacenar en conjunto los resultados de la consulta.*/
while ($row=sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
$plaza=$row['plaza'];
$clave_ct_necesidad=$row['clave_ct_necesidad'];
$clave_ct_nomina=$row['clave_ct_nomina'];
$clave_ct_analitico=$row['clave_ct_analitico'];
$qna_ini=$row['qna_ini'];
$qna_fin=$row['qna_fin'];
$asignatura=$row['asignatura'];
$observaciones=$row['observaciones'];
array_push($return_arr,$row_array);
}
/* Codifica el resultado del array en JSON. */
echo json_encode($return_arr);
}
?>
非常感谢您的回答。
编辑:在这个版本中,我使用的是 JQuery Autocomplete,但它也可以使用 Select。
我已经明白了,呵呵,当您在 html 中进行更改时,您必须创建一个方法 onchange = "change()" 激活该方法
} }
你去基地做你的查询或者你要做的任何事情,然后用 echo $response 或者如果它是一个数组 echo json($response) 返回你的结果。
然后你用你的数据做巡回演出
我从stackOverflow借用了一些对我有很大帮助的英文答案,所以我将把它们如何适应我的问题:
我使用了data属性,在我选择的地方,我将要填写表格的每条记录分配给一个变量:
填充初始选择并获取数据中的字段的 SQL 查询
然后我在 Javascript 中生成一个函数,该函数获取存储在每个数据中的数据并将其填充到相应的字段中:
获取数据并将其分配给文本字段的 Javascript 函数
它对我来说非常有效。我希望它对其他人有用。