Fernando Couto Posted April 18, 2022 at 09:12 AM Report Share #625787 Posted April 18, 2022 at 09:12 AM (edited) Olá, Estou a fazer um formulário de preenchimento automático usando Jquery e a função autocomplete. A ideia é: no campo "numero" escreve-se o número e aparece uma lista de resultados. Seleciona-se o resultado desejado e 3 campos são preenchidos automaticamente. Problema: só consigo fazer com que o campo "número" seja preenchido e não os outros campos, por exemplo o campo "nome". Excerto Jquery $("#numero, #nome").autocomplete( { source: "pesquisa.php", minLength: 2, autoFocus: true, change: function(event,ui) { if (!ui.item) { $("#numero").val(""); $("#nome").text(ui.item.$nome_emp); } }); Excerto do ficheiro "pesquisa.php" correspondente aos resultados depois de feita a pesquisa SQL while($row = sqlsrv_fetch_array($result)) // fetch result { if($i<16){ $sector = $row[3]; $n_emp = $row[2]; $nome_emp = $row[1]; $nome_abrev = $row[0]; $resultados[] = array('label' => ($nome_emp).' - '.$n_emp.' - '.$sector, 'value' => ($nome_emp).' - '.$n_emp.' - '.$sector); } $i++; } Será que me poderiam ajudar? Edited April 18, 2022 at 12:07 PM by Fernando Couto Link to comment Share on other sites More sharing options...
Ivo Vicente Posted April 18, 2022 at 09:12 PM Report Share #625793 Posted April 18, 2022 at 09:12 PM (edited) Assim por alto, os resultados que está a enviar, terá mais flexibilidade de usar um array associativo com os dados todos, <?php // Criar um array associativo // se usar aspas pode passar a variavel PHP diretamente resultados[] = [ "label" => "($nome_emp) - $n_emp - $sector", "value" => "($nome_emp) - $n_emp - $sector", "nome" => $nome_emp, "numero" => $n_emp, "sector" => $sector ]; //.... // retornar como json return json_encode($resultados) Depois no jquery, basta atribuir o parâmetro que pretende para o o lugar dele, seja o texto completo, ou valores individuais //.... codigo anterior change: function(event,ui) { if (!ui.item) { $("#numero").val(""); $("#nome").text(ui.item.nome_emp); $("#secção").text(ui.item.seccao); //... } } Mas antes de mais é importante que tenha a resposta de backend (php) bem definida, e que lhe chegue formatada em condições que a possa usar Já agora, o .text(...) é para elementos que não seja do tipo input (text, number, email), para atribuir valores a inputs tem que usar o .val(...) Espero ter ajudado Edited April 18, 2022 at 09:17 PM by Ivo Vicente Feito é melhor que perfeito Link to comment Share on other sites More sharing options...
Solution Fernando Couto Posted June 6, 2022 at 06:36 PM Author Solution Report Share #626130 Posted June 6, 2022 at 06:36 PM Olá, peço desculpa só estar a responder agora. Muito obrigado pela ajuda. De qualquer das maneiras só consegui resolver o assunto usando a função str_split na string "ui". Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now