Buenas señores,
Pues me encuentro con un problema que no se como resolver.... estoy intentando hacer que al usar el autocompleter, al seleccionar una opción del desplegable que genera, se copie también el ID de dicha selección, estoy probando con la opción
afterUpdateElement: pero no hay manera!!
os pongo el código amigos...
el HTML
Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script src="prototype.js" type="text/javascript"></script>
<script src="effects.js" type="text/javascript"></script>
<script src="controls.js" type="text/javascript"></script>
<style type="text/css">
div.auto_complete {
width: 350px;
background: #fff;
}
div.auto_complete ul {
border:1px solid #888;
margin:0;
padding:0;
width:100%;
list-style-type:none;
}
div.auto_complete ul li {
margin:0;
padding:3px;
}
div.auto_complete ul li.selected {
background-color: #ffb;
}
div.auto_complete ul strong.highlight {
color: #800;
margin:0;
padding:0;
}
</style>
</head>
<body>
<form name="tarifas" method="post">
<table cellspacing="0" cellpadding="0" border="0">
<tr>
<td width="70" class="texto4">cliente:</td>
<td width="200"><input autocomplete="off" id="cliente_name" name="cliente" size="57" type="text" class="textForm" value="" /><div class="auto_complete" id="client_name_auto_complete"></div><span id="indicator1" style="display: none"><br>buscando...</span></td>
</tr>
</table>
<input type="text" name="id" id="id">
<script type="text/javascript">
new Ajax.Autocompleter('cliente_name', 'client_name_auto_complete', 'data.php', {indicator:'indicator1', afterUpdateElement : getSelectionId})
function getSelectionId(text, li) {
alert (li.id);
}
</script>
</form>
</body>
</html>
el PHP
Código PHP:
<?php
$ruta = "../web/";
include_once($ruta."includes/incFunciones.php");
include_once($ruta."includes/incConexion.php");
$texto = $_POST['cliente'];
//$texto = "Ba";
$sql = "select id_franquicia,nombre FROM franquicias WHERE nombre LIKE '".$texto."%' ORDER BY nombre ASC";
$query = mysql_query($sql,$link);
$personas = array();
$i=0;
while($row_c=mysql_fetch_array($query)){
$personas[$i][1] = $row_c["id_franquicia"];
$personas[$i][2] = $row_c["nombre"];
//echo($personas[$i][1] . " - " . $personas[$i][2]."<br>");
$i++;
}
mysql_free_result($query);
if ($texto) {
$respuesta = '';
foreach ($personas as $indice => $persona) {
//echo($indice."<---".$persona[2]."<br>");
if (preg_match("/^$apellido/i", $persona[2])){
$respuesta .= '<li id="'.$persona[1].'">'.$persona[2].'</li>';
}
}
if (!$respuesta){
$respuesta = "<i>No hay coincidencias con '$apellido'</i>";
}
echo("<ul>".$respuesta."</ul>");
}
?>
No entiendo que sea tan complicado poder seleccionar el ID, lo devuelvo el en la lista como dice el ejemplo
http://wiki.script.aculo.us/scriptac....Autocompleter
Mil gracias amigos!!