El problema es cuando hago lo mismo para los garantes, cuando elijo una opcion de los resultados que salen este se va al textbox del socio y no asi al textbox del garante.
Se que es cosa de Ajax, y especificamente dentro el archivo buscar.js, en la funcion selected(choice), pero soy nuevo en esto de ajax y el codigo lo fui adaptando medianamente a mis necesidades pero me tranque en esto, ojala me puedan ayudar.
Aca esta una muestra de la tabla de mi BD.
Cita:
01.php (la pagina principal)CREATE TABLE `socios` (
`SOC_COD` VARCHAR(20) COLLATE utf8_general_ci DEFAULT NULL,
`SOC_APP` CHAR(20) COLLATE utf8_general_ci DEFAULT NULL,
`SOC_APM` CHAR(20) COLLATE utf8_general_ci DEFAULT NULL,
`SOC_NOMB` CHAR(50) COLLATE utf8_general_ci DEFAULT NULL,
`SOC_CI` CHAR(20) COLLATE utf8_general_ci DEFAULT NULL
)ENGINE=InnoDB
COLLATE 'utf8_general_ci' INSERT_METHOD=NO;
COMMIT;
INSERT INTO `socios` (`SOC_COD`, `SOC_APP`, `SOC_APM`, `SOC_NOMB`, `SOC_CI`) VALUES
('100', 'aaa', 'bbb', 'ccc', '123'),
('200', 'ddd', 'eee', 'fff', '456'),
('300', 'ggg', 'hhh', 'iii', '789'),
('400', 'jjj', 'kkk', 'lll', '135'),
('500', 'mmm', 'nnn', 'ooo', '246');
`SOC_COD` VARCHAR(20) COLLATE utf8_general_ci DEFAULT NULL,
`SOC_APP` CHAR(20) COLLATE utf8_general_ci DEFAULT NULL,
`SOC_APM` CHAR(20) COLLATE utf8_general_ci DEFAULT NULL,
`SOC_NOMB` CHAR(50) COLLATE utf8_general_ci DEFAULT NULL,
`SOC_CI` CHAR(20) COLLATE utf8_general_ci DEFAULT NULL
)ENGINE=InnoDB
COLLATE 'utf8_general_ci' INSERT_METHOD=NO;
COMMIT;
INSERT INTO `socios` (`SOC_COD`, `SOC_APP`, `SOC_APM`, `SOC_NOMB`, `SOC_CI`) VALUES
('100', 'aaa', 'bbb', 'ccc', '123'),
('200', 'ddd', 'eee', 'fff', '456'),
('300', 'ggg', 'hhh', 'iii', '789'),
('400', 'jjj', 'kkk', 'lll', '135'),
('500', 'mmm', 'nnn', 'ooo', '246');
Código HTML:
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Tabla de Amortización de Préstamos</title> <script type="text/javascript" src="buscar.js"></script> </head> <body> <form method="get" id="searchform" action=""> <div align="center" class="titulo"><strong>Tabla de Amortización de Préstamos</strong></div><br> <table border="1" align="center"> <tr> <td class="subtitulos" align="right"> Socio: </td> <td colspan="5"> <input type="text" name="socio" id="socio" size="85" readonly="readonly"/> </td> </tr> <tr> <td align="right" class="subtitulos">Busqueda de Socio:</td> <td align="center"> <input type="text" value="" name="codigo" id="codigo" onkeyup="request_codigo_socio(this.value);" size="4" maxlength="5"/><br /> Numero Socio </td> </tr> <tr align="center"> <td colspan="6" align="left"> <div id="tag_update_socio"></div> </td> </tr> <tr> <td class="subtitulos" align="right"> Garante 1: </td> <td colspan="5"> <input type="text" name="garante_1" id="garante_1" size="85" readonly="readonly"/> </td> </tr> <tr> <td align="right" class="subtitulos">Busqueda de Garante 1:</td> <td align="center"> <input type="text" value="" name="codigo" id="codigo" onkeyup="request_codigo_garante_1(this.value);" size="4" maxlength="5"/><br /> Numero Socio </td> </tr> <tr> <td colspan="6" align="left" > <div id="tag_update_garante_1"></div> </td> </tr> </table> </form> </body> </html>
Código PHP:
var myAjax = ajax();
function ajax()
{
var ajax = null;
if (window.XMLHttpRequest)
{
try
{
ajax = new XMLHttpRequest();
}
catch(e) {}
}
else if (window.ActiveXObject)
{
try
{
ajax = new ActiveXObject("Msxm12.XMLHTTP");
}
catch (e)
{
try
{
ajax = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) {}
}
}
return ajax;
}
//////////////////////////////////////////////////////////////////////////////
// Datos del Socio
//////////////////////////////////////////////////////////////////////////////
function request_codigo_socio(str) {
//Don't forget to modify the path according to your theme
myAjax.open("POST", "ajax_codigo_socio.php");
myAjax.onreadystatechange = result;
myAjax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
myAjax.send("search="+str);
}
function result()
{
if (myAjax.readyState == 4)
{
var liste = myAjax.responseText;
var cible = document.getElementById('tag_update_socio').innerHTML = liste;
document.getElementById('tag_update_socio').style.display = "block";
}
}
function selected(choice)
{
var cible = document.getElementById('socio');
var posc = 0;
for (var i=cible.value.length-1; i>=0; i--)
{
var caracter = cible.value[i];
if (caracter==" ")
{
posc = i+1;
break;
}
}
cible.value = cible.value.substring(0,posc)+""+choice+" ";
cible.focus();
document.getElementById('tag_update_socio').style.display = "none";
}
//////////////////////////////////////////////////////////////////////////////
// Datos del Garante 1
//////////////////////////////////////////////////////////////////////////////
function request_codigo_garante_1(str) {
//Don't forget to modify the path according to your theme
myAjax.open("POST", "ajax_codigo_garante_1.php");
myAjax.onreadystatechange = result_garante_1;
myAjax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
myAjax.send("search="+str);
}
function result_garante_1()
{
if (myAjax.readyState == 4)
{
var liste = myAjax.responseText;
var cible_garante_1 = document.getElementById('tag_update_garante_1').innerHTML = liste;
document.getElementById('tag_update_garante_1').style.display = "block";
}
}
function selected_garante_1(choice)
{
var cible_garante_1 = document.getElementById('garante_1');
var posc = 0;
for (var i=cible_garante_1.value.length-1; i>=0; i--)
{
var caracter = cible_garante_1.value[i];
if (caracter==" ")
{
posc = i+1;
break;
}
}
cible_garante_1.value = cible_garante_1.value.substring(0,posc)+""+choice+" ";
cible_garante_1.focus();
document.getElementById('tag_update_garante_1').style.display = "none";
}
Código PHP:
<?php
if (isset($_POST['search']))
$search = htmlentities($_POST['search']);
else
$search ='';
$db = mysql_connect('localhost','root','xXx'); //Don't forget to change
mysql_select_db('ufv', $db); //theses parameters
$arreglo = explode(' ', $search);
if($arreglo[count($arreglo)-1]=="" || $arreglo[count($arreglo)-1]==" "){
mysql_close();
die();
}
$sql = "SELECT soc_cod,soc_app,soc_apm,soc_nomb,soc_ci from socios WHERE soc_cod LIKE '".$arreglo[count($arreglo)-1]."%' ORDER BY soc_cod";
$req = mysql_query($sql) or die();
echo "<ol>";
while ($data = mysql_fetch_array($req))
{
echo "<li><a href='#' onclick='selected(this.innerHTML);'>";
echo $data['soc_cod']." ";
echo $data['soc_app']." ";
echo $data['soc_apm']." ";
echo $data['soc_nomb']." ";
echo $data['soc_ci'];
echo "</a></li>";
}
echo "</ol>";
mysql_close();
?>
Código PHP:
<?php
if (isset($_POST['search']))
$search = htmlentities($_POST['search']);
else
$search ='';
$db = mysql_connect('localhost','root','xXx'); //Don't forget to change
mysql_select_db('ufv', $db); //theses parameters
$arreglo = explode(' ', $search);
if($arreglo[count($arreglo)-1]=="" || $arreglo[count($arreglo)-1]==" "){
mysql_close();
die();
}
$sql = "SELECT soc_cod,soc_app,soc_apm,soc_nomb,soc_ci from socios WHERE soc_cod LIKE '".$arreglo[count($arreglo)-1]."%' ORDER BY soc_cod";
$req = mysql_query($sql) or die();
echo "<ol>";
while ($data = mysql_fetch_array($req))
{
echo "<li><a href='#' onclick='selected(this.innerHTML);'>";
echo $data['soc_cod']." ";
echo $data['soc_app']." ";
echo $data['soc_apm']." ";
echo $data['soc_nomb']." ";
echo $data['soc_ci'];
echo "</a></li>";
}
echo "</ol>";
mysql_close();
?>