【发布时间】:2016-06-04 21:33:59
【问题描述】:
我现在正在做的是当我输入一个人的名字时自动完成。我需要的是当我选择名字时自动用那个人的 id 填充一个隐藏字段。
我的代码:
<form action="cadastroAdm.php" method="post" name="clientForm">
<input type="text" name="clienteId" id="clienteId">
<input type="text" name="clienteNome" id="clientes">
</form>
jquery
$(document).ready(function() {
// Captura o retorno do retornaCliente.php
$.getJSON('php/retornar_cliente.php', function(data){
var dados = [];
// Armazena na array capturando somente o nome do EC
$(data).each(function(key, value) {
dados.push(value.clienteNome);
});
$('#clientes').autocomplete({
source: dados,
minLength: 3,
select: function(event, ui) {
$('#clienteId').val(ui.item.id);
console.log(ui.item.id);
},
});
});
});
retornar_cliente.php
<?php
$hostname = "";
$user = "";
$pass = "";
$basedados = "";
$pdo = new PDO("mysql:host=localhost; dbname=adv; charset=utf8;",'root','');
$dados = $pdo->prepare("SELECT clienteNome, clienteId FROM cliente ORDER BY clienteNome");
$dados->execute();
echo json_encode($dados->fetchAll(PDO::FETCH_ASSOC));
?>
在控制台日志中我只收到“未定义”.. 我做错了什么?
【问题讨论】:
-
console.log(ui);看看这个。
-
然后,$('#clienteId').val(ui.clienteId);
-
你只是将clientName而不是id推到
dados array,这是autocomplete.push clienteId到array的来源。应该可以解决问题 -
如何连接它?还是推2次?
标签: php jquery html mysql autocomplete