Bonjour,

j'utilise la librairie scriptaculous.js pour gérer les autocomplétions sur mon site web. Celle ci marche parfaitement, sauf que j'aimerai la pousser un peu plus, à savoir de base, quand on choisit un élément de la liste générée par l'autocomplétion, et que l'on clic sur l'élément, cela efface tout l'input text qui lui est affecté, et remplace tous ses éléments par la valeur sélectionnée. Et moi, j'aimerai pouvoir ajouter des éléments à ceux déja existants.

Prenons un exemple :
dans mon input, j'ai déja les noms : Nom1;Nom2;
je tappe en plus "no" à la suite, la cela me génère bien l'autocomplétion avec tous les noms de ma bdd commencant par "no", mais lorsque je clic sur "Nom3", cela m'efface Nom1;Nom2; et me le remplace par Nom3, et moi j'aimerai que cela m'affiche Nom1;Nom2;Nom3;

j'ai essayé de mettre une fonction JS sur la liste dans ma page ajax, mais rien n'y fait, il prend bien en compte ma fonction, mais passe outre par la suite, et m'efface tout mon champs.

Ma question est donc la suivante : comment faire pour rajouter un élément à un input en utilisant la librairie scriptaculous.js ?

Voila mes codes :
HTML
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
<input type="text" name="A" id="A" />
<div id="auto_search"></div>
<script type="text/javascript">
        new Ajax.Autocompleter (
	'A',      // ID of the source field
	'auto_search',  // ID of the DOM element to update
	'ajax.php', // Remote script URI
	{method: 'post', paramName: 'nom_mp' }
	);
	</script>
j'ai essayer de rajouter les options udpateElement ou afterUpdateElement en leur passant le nom de ma fonction js, mais ca n'a rien changé.

Ma page ajax.hp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
if(isset($_POST["nom_mp"]))
{
	$usermp = explode(";",$_POST["nom_mp"]);
	$tailleusermp = sizeof($usermp)-1;
 
	$req = mysql_db_query($sql_bdd,"SELECT login FROM users WHERE login LIKE '".$usermp[$tailleusermp]."%' ORDER BY login ASC");
 
	if(mysql_num_rows($req)!=0)
	{
		echo "<ul>";
		$i=0;
		while($rec = mysql_fetch_array($req))
		{
			?>
			<li><a href="javascript:void(0);" onclick="Reporter('<?php echo utf8_encode($rec["login"]); ?>')"><?php echo utf8_encode($rec["login"]); ?></a></li>
			<?php
			if (++$i >= 10) die('<li>...</li></ul>');
		} // fin du while
	}
}
Et ma fonction JS Reporter()
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
function Reporter(user) 
	{
		var present = $('A').value;
		var choix = user+";";		
		var i=0;
		var ok = 1;		
		while(i<present.split(';').length)
		{
			var userExist = present.split(';');
			if(userExist[i]==user) { ok = 0; }
			i++;
		}
		if(ok==1) { $('A').value = present+choix; }
	}
Merci pour votre aide !