Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/08/2008, 10:56
Avatar de Superlinux
Superlinux
 
Fecha de Ingreso: octubre-2005
Ubicación: Colombia
Mensajes: 662
Antigüedad: 18 años, 7 meses
Puntos: 1
Pregunta Select dependientes con Ajax

Hola amigos del foro tengo un pequeño problemilla al tratar de ingresar un dato seleccionado con mi select dependiente a mi BD.

Este es mi fomulario donde selecciono donde hago uso del select

ModificarCcp.php
Código PHP:
<HTML>
<HEAD>
<script language="JavaScript" type="text/javascript" src="../AJAX/AjaxSelectDependientesCuentas.js">
/**************************************************************************** 
* LLAMA AL OBJETO AJAX
****************************************************************************/
</script>
</HEAD>
<BODY bgColor=#a2aace>
<?php
// Carga funcion de conexion a BD
require ("ConexionBD.php");
?>
<form name="nuevo_item_Ccp" action="" onSubmit="EnviarDatosDetalleCcp(); return false">
<tr valign="middle"> 
<td width="11%" height="24" class="punteado" id="fila_1"> 
<?php
include('ListaCuentaSelectDependientesConBD.php');
?>
</td>
<td width="89%" class="punteado" id="fila_2"><select class="combo" disabled="disabled" id="select_1" name="nomcuenta">
<option value="">Cuenta...</option>
</select></td></tr>
</form>
</body>
</html>
El objeto Ajax
AjaxSelectDependientesCuentas.js
Código PHP:
function nuevoAjax()

    
/* Crea el objeto AJAX. Esta funcion es generica para cualquier utilidad de este tipo, por
    lo que se puede copiar tal como esta aqui */
    
var xmlhttp=false
    try 
    { 
        
// Creacion del objeto AJAX para navegadores no IE
        
xmlhttp=new ActiveXObject("Msxml2.XMLHTTP"); 
    }
//Fin del try
    
catch(e)
    { 
        try
        { 
            
// Creacion del objet AJAX para IE 
            
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
        }
//Fin del try
        
catch(E) { xmlhttp=false; }
    }
//Fin del catch(e) 
    
if (!xmlhttp && typeof XMLHttpRequest!='undefined') { xmlhttp=new XMLHttpRequest(); } 

    return 
xmlhttp
}
//Fin function nuevoAjax()


function cargaContenidoCuentas()
{
    var 
valor=document.getElementById("select_0").options[document.getElementById("select_0").selectedIndex].value;
    if(
valor==0)
    {
        
// Si el usuario eligio la opcion "Elige", no voy al servidor y pongo todo por defecto
        
combo=document.getElementById("select_1");
        
combo.length=0;
        var 
nuevaOpcion=document.createElement("option"); nuevaOpcion.value=0nuevaOpcion.innerHTML="Seleccione...";
        
combo.appendChild(nuevaOpcion);    combo.disabled=true;
    }
//Fin del if
    
else
    {
        
ajax=nuevoAjax();
        
ajax.open("GET""../PUBLIC/SelectDependientesProcesoCuentas.php?seleccionado="+valortrue);
        
ajax.onreadystatechange=function() 
        { 
            if (
ajax.readyState==1)
            {
                
// Mientras carga elimino la opcion "Elige pais" y pongo una que dice "Cargando"
                
combo=document.getElementById("select_1");
                
combo.length=0;
                var 
nuevaOpcion=document.createElement("option"); nuevaOpcion.value=0nuevaOpcion.innerHTML="Cargando...";
                
combo.appendChild(nuevaOpcion); combo.disabled=true;    
            }
//Fin del if
            
if (ajax.readyState==4)
            { 
                
document.getElementById("fila_2").innerHTML=ajax.responseText;
            }
//Fin del if
        
}//Fin function() 
        
ajax.send(null);
    }
//Fin del else
}//Fin function cargaContenido() 
SelectDependientesProcesoCuentas.php
Código PHP:
<?php
//conexion BD
include_once("DBManager.php");

function 
ValidaValor($parametro)
{
    return 
TRUE;
}
//Fin function validaValor($parametro)

$valor=$_GET["seleccionado"];

if(
ValidaValor($valor))
{
    
// Genero la consulta trayendo todos los estados que correspondan al codigo de pais elegido
    
$consulta=mysql_query("SELECT codcuenta FROM cuentas WHERE codcuenta='$valor'");

    
// Comienzo a imprimir el select
    
echo "<select class='combo' id='select_1' name='codcuenta'>";
    while(
$registro=mysql_fetch_row($consulta))
    {
        
// Paso a HTML acentors y ñ para su correcta visualizacion
        
$registro[1]=htmlentities($registro[1]);
        
// Imprimo las opciones del select
        
echo "<option value='".$registro[0]."'>".$registro[1]."</option>";
    }
//Fin del while            
    
echo "</select>";
}
//Fin del if
?>
La tabla ...

--
-- Estructura de tabla para la tabla `cuentas`
--

CREATE TABLE `cuentas` (
`codcuenta` varchar(8) NOT NULL default '',
`nomcuenta` varchar(40) NOT NULL default '',
`tasa` double NOT NULL default '0',
`destino` varchar(8) NOT NULL default '',
`tipodestino` char(2) default NULL,
PRIMARY KEY (`codcuenta`)
) TYPE=InnoDB;


NOTA: El campo seleccionado que deseo ingresar a mi la tabla contabilizacioncp es codcuenta ... el campo nomcuenta es solo informativo ...


... Gracias por la ayuda que me puedan brindar.
__________________
"La vida sigue su curso, tú toma parte de ella."