Ir para o conteúdo
NunoDinis

[Resolvido] Autocomplete só dá numa aba do acordeão

Mensagens Recomendadas

NunoDinis

Bom dia,

Em cada aba do menu, pretende poder adicionar novos utilizadores. Para isso, tenho um script que autocompleta os utilizadores conforme vai digitando na caixa de texto.

O senão é que só dá na primeira aba do acordeão, nas restantes não.

app.png

O index:

<script type="text/javascript">
$().ready(function() {
$("#course").autocomplete("autoCompleteMain.php", {
 width: 260,
 matchContains: true,
 //mustMatch: true,
 //minChars: 0,
 //multiple: true,
 //highlight: false,
 //multipleSeparator: ",",
 selectFirst: false
});
});
</script>

<div id="content">
 <form autocomplete="off">
  <p>
  Utilizador <label>:</label>
  <input type="text" name="user" id="user" />
  <input type="submit" value="Adicionar" />
  </p>
  </form>
</div>

A função que chama o script do index, autocompletemain.php:

<?php
include('../conn.php');
$q = strtolower($_GET["q"]);
if (!$q) return;
$sql = "select DISTINCT username as username from users where username LIKE '%$q%'";
$rsd = mysql_query($sql);
while($rs = mysql_fetch_array($rsd)) {
$cname = $rs['username'];
echo "$cname\n";
}
?>


Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

$("#course").autocomplete("autoCompleteMain.php", {

só estás a associar ao elemento com o id "course"

deveris associar a todos os elementos que pretendes que o autocomplete esteja associado (terás de usar um selector diferente)


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
NunoDinis

É possível associar o id do input ao id da aplicação e o selector ser #id ?

Algo assim:

<input type="text" name="user" id="<?php echo "$lista[0]"; ?>" />

$("#id").autocomplete("autoCompleteMain.php", {

Editado por NunoDinis

Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
NunoDinis

é normal, acho eu :)

Eu pensei em dar ao id do input o id da aplicação (aba roxa no acordeão)..


Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
NunoDinis

E eu estou a tentar dizer-te desde o início que quero pôr o id do HTML com o id da app.

<input type="text" name="user" id="<?php echo "$lista[0]"; ?>" />


Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

$("#course").autocomplete("autoCompleteMain.php", {

só estás a associar ao elemento com o id "course"

deveris associar a todos os elementos que pretendes que o autocomplete esteja associado (terás de usar um selector diferente)


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
NunoDinis

Lá está.. associo o id do input ao id da aplicação, e com esta função vou buscar o id da aba que carreguei no acordeão.

<script type="text/javascript" language="javascript">
function teste(img) {
alert("clicked : " + img.id + " - value : " + img.value);
}
</script>

Agora, gostava que me ajudasses no selector..

Estás a perceber a minha lógica ?

Editado por NunoDinis

Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

não podes usar id !! id só dá para um elemento !!

O senão é que só dá na primeira aba do acordeão, nas restantes não.

tens de usar classes ...


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

olha para o seguinte HTML:

<input id="id1" />
<input id="id2" />

o selector seguinte só selecciona um elemento:

$("#id1")

o elemento id2 não é retornado, logo, não é aplicado o plugin "autocomplete"

o que necessitas fazer é dar uma classe aos elementos :

<input class="autocomplete" id="id1" />
<input class="autocomplete"id="id2" />

desta forma podes usar um selector que te retorne todos os elementos que possuem esta classe:

$(".autocomplete")

Editado por HappyHippyHippo

IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
NunoDinis

Não é bem o botão agora, isso já resolvi :)

Como vou buscar o valor da caixa de texto do acordeão que está aberto?

<img class="testeimagem" onclick="javascript:teste(this)" src="images/add.png" width="20" height="20" id="<?php echo "$liista[0]"; ?>"/>

function teste(img) { 
 alert("clicked : " + img.id + " - value : " + img.value);
 var userid = $(".testeimagem").val(); // acho que estou a cometer um erro grande, mas já tentei de várias formas e não consegui.


Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

$liista[0] ou $lista[0] ?

<img onclick="teste(this)" src="images/add.png" width="20" height="20" userid="<?php echo "$lista[0]"; ?>"/>

function teste(img) {
 var userid = $(img).attr('userid');
}


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
NunoDinis

$liista[0], desculpa.

Não dá. quando faço o alert diz undefined.

Calma calma, deixa-me só testar mais uma coisa que acho que dá..


Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
NunoDinis

Era mesmo isso @happy, obrigado mais uma vez.

Agora para terminar, como vou buscar o texto do botão da aba em que estou ? Tentei assim:

alert($(".autocomplete")val());


Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

esse selector é de todos os elementos com a classe "autocomplete"

para seleccionar um específico, necessitas de

- ou escolher pelo id

- ou navegas no DOM à procura do que necessitas


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
NunoDinis

Mantenho a mesma filosofia..vai ser pelo id.

<input type="text" class="autocomplete" name="busca" id="<?php echo "$liista[0]";?>" style="width: 117px" />

Como tenho que proceder ?


Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.