Jump to content
NunoDinis

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

Recommended Posts

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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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", {

Edited by NunoDinis

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

ndsotware.org

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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 ?

Edited by NunoDinis

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

ndsotware.org

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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")

Edited by HappyHippyHippo

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

Share this post


Link to post
Share on other sites
NunoDinis

Obrigado @happy, era isso :)

Agora tenho o problema do botão. Devo proceder da mesma forma ?


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

ndsotware.org

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.