Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Refrescar lista desplegable de pagina padre desde pagina hija en ie6

Estas en el tema de Refrescar lista desplegable de pagina padre desde pagina hija en ie6 en el foro de Frameworks JS en Foros del Web. Hola, tengo una pagina en php para agregar una persona, en la que tiene una lista desplegable (select) para seleccionar el sistema de previsión. Si ...
  #1 (permalink)  
Antiguo 27/02/2008, 01:20
 
Fecha de Ingreso: febrero-2008
Mensajes: 8
Antigüedad: 16 años, 2 meses
Puntos: 0
Pregunta Refrescar lista desplegable de pagina padre desde pagina hija en ie6

Hola, tengo una pagina en php para agregar una persona, en la que tiene una lista desplegable (select) para seleccionar el sistema de previsión. Si la previsión no esta, existe un link a un pupop para agregarla.

Esto me funciona en IE7 y Firefox.

Pido su ayuda para que esto también funcione en IE6.

Además cada vez que presiona el link para abrir el pupop este se refresca como corresponde. pero no cuando se actualiza la hija al agregar

Codigo php de pagina padre persona.php.
Código PHP:
<head>
…….
<script language="JavaScript" src="../js/recargacombo.js" type="text/javascript"></script>
…….
</head>
<body>
………
<select name=" codprevision" id=" codprevision" tabindex="15">
          <?php 
          $prevision
->lista_select();  // rellena las opciones
?>
</select>
…….
</body>
Codigo php pagina hija previsión.php
Código PHP:
<head></head>
<!--
lamada a recarga de combox padre-->
<
body onLoad="opener.cargaCombo('codprevision ')"
<!
—codigo de editareliminar y agregar-->
</
body
Codigo ajax recargacombo.js
Código PHP:
function nuevoAjax()

    var 
xmlhttp=false;
    try
    {
        
// Creacion del objeto AJAX para navegadores no IE
        
xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch(
e)
    {
        try
        {
            
// Creacion del objet AJAX para IE
            
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch(
E)
        {
            if (!
xmlhttp && typeof XMLHttpRequest!='undefined'xmlhttp=new XMLHttpRequest();
        }
    }
    return 
xmlhttp
}

function 
cargaContenido(idSelectDestino)
{

        
// Obtengo el elemento del select que debo cargar        
        
var selectDestino=document.getElementById(idSelectDestino);    
        
        
// Creo el nuevo objeto AJAX y envio al servidor el ID del select
        
var ajax=nuevoAjax();
        
ajax.open("GET""../js/recargacombo.php?select="+idSelectDestino+"&tab="+selectDestino.tabIndextrue);
        
ajax.onreadystatechange=function() 
        { 
            
            if (
ajax.readyState==4)
            {
                
selectDestino.parentNode.innerHTML=ajax.responseText;
            } 
        }
        
ajax.send(null);
    


Codigo de pagina php que llama javascript recagacombo.php

Código PHP:
<?php
require("../class/prevision.php");

$combo=$_GET["select"];
$index=$_GET["tab"];
if(
$combo == "codprevision")
{
    echo 
"<select name=\"".$combo."\" id=\"".$combo."\" tabindex=\"".$index."\" >";
    
$obj = new previcion();
    
$obj->lista_select();  //crear las opciones del combox
    
echo   "</select>";    
}
?>
Espero que me ayuden con este problema

pd:
En la pagina hija agregue <body onLoad="opener.cargaCombo('codprevision ')"> ya que en esta pagina puede eliminar, editar y agregar previsión.

En la pagina padre esta la referencia al archivo js contiene la función cargaContenido
  #2 (permalink)  
Antiguo 19/03/2008, 13:48
 
Fecha de Ingreso: junio-2007
Ubicación: en una casa
Mensajes: 42
Antigüedad: 16 años, 10 meses
Puntos: 0
De acuerdo Re: Refrescar lista desplegable de pagina padre desde pagina hija en ie6

Hola Joseverdugo

podrias poner el codigo completo de todas las paginas que se involucran (solo de estas que haces mencion) en tu problema, para poder darte una solucion completa y definitiva...

gracias
  #3 (permalink)  
Antiguo 20/03/2008, 05:33
 
Fecha de Ingreso: febrero-2008
Mensajes: 8
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Refrescar lista desplegable de pagina padre desde pagina hija en ie6

Hola Casper2007

Gracias por tu interés en responder mi duda, pero ya la encontré.

El problema era producido en IExplorer y solo la primera llamada al Server funcionaba y las siguientes respondia lo mismo q el primer request.

Me entere que esto ocuria dado que IE6 guardaba la primera respuesta de la llamada al Server en su cache Para optimizar, si preguntaba lo mismo respondía siempre la primera llamada.


extrato codigo ajax recargacombo.js

Antes:
Código PHP:
ajax.open("GET""../js/recargacombo.php?select="+idSelectDestino+"&tab="+selectDestino.tabIndextrue); 
Ahora:
Código PHP:
ajax.open("GET""../js/recargacombo.php?select="+idSelectDestino+"&tab="+selectDestino.tabIndex+"&aleat="+Aleatorio(), true); 
Si te fijas agrege a la llamada al server un parametro aleatorio para engañar a IE6 de que la llamada es distinta a la anterior.

y con tan solo este cambio el problema se soluciona.

saludos
  #4 (permalink)  
Antiguo 24/03/2008, 12:33
Avatar de LoverBoy  
Fecha de Ingreso: marzo-2008
Mensajes: 2
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Refrescar lista desplegable de pagina padre desde pagina hija en ie6

hola Jose Verdugo...

tengo un problema muy similar al tuyo, lo que pretendo realizar es que de la pagina padre (registrar.php) hace un llamado a una pagina hija (agregaremitente.php) osea que si un remitente no existe lo doy de alta en la pagina hija, una vez capturado el remitente que necesito, al cerrar la pagina hija, el combo (o lista) debe estar actualizado con el registro que apenas di de alta (obviamente sin refrescar la pagina padre), pero definitivamente no lo he logrado conseguir... si fuera mucha molestia (y si no te causa problemas) pusieras el codigo completo de las paginas a que haces referencia en tu codigo... esto para poder solucionar mi problema.... te agradece infinitamente... o podrias enviarlo a mi correo...

antes ya mil gracias y saludos

LoverBoy
[email protected]

Última edición por LoverBoy; 28/03/2008 a las 15:31
  #5 (permalink)  
Antiguo 31/03/2008, 15:02
 
Fecha de Ingreso: febrero-2008
Mensajes: 8
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Refrescar lista desplegable de pagina padre desde pagina hija en ie6

Hola.

Te dejo todo el codigo, desarrollado en postgres con php5 y probado en ie6, ie7 y firefox

afp.php
Código PHP:
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>AFP</title>
<script type="text/javascript">
function valida_form(f)
{        
    f.submit();            
}
</script>

</head>
<!--Si esta pagina tiene padre, cargar el contenido del combo afp del padre -->
<body onLoad="if(opener != null)opener.cargaContenido('codafp')">

<?php
require("afp.class.php");
require(
"db.class.php");

$obj = new afp();
$msg='';

if(isset(
$_GET["opcion"])){
    
    if(
$_GET["opcion"] == "editar"){
        
$obj->get($_GET["codafp"]);        
    }    
    if(
$_GET["opcion"] == "save"){
        
        
$obj->setcodAfp($_GET["cod"]);

        if(
$_GET["cod"] == null)
        
$obj->setcodAfp("null");
        
$obj->setletra("null");
        
$obj->setnombre($_GET["nombre"]);
        
$obj->setporcentaje($_GET["porcentaje"]);        
        
        
$cod $obj->getcodAfp();
        
//guardando
        
$obj->save();        
        

    }
}
?>


<p><strong>Agregar/editar Afp</strong></p>
<form id="form1" name="form1" method="get" action="<?php echo $_SERVER['PHP_SELF'];?>">
<input type="hidden" name="cod" id="cod" value="<?php echo $obj->getcodAfp();?>" />
<input type="hidden" name="opcion" id="opcion" value="save" />
  <table border="0">
    
    <tr>
      <th scope="row"><div align="left">Nombre</div></th>
      <td>
        <input type="text" name="nombre" id="nombre" tabindex="1" value="<?php echo $obj->getnombre();?>" />
     </td>
    </tr>
    <tr>
      <th scope="row"><div align="left">Porcentaje</div></th>
      <td>
        <input type="text" name="porcentaje" id="porcentaje" tabindex="2" value="<?php echo $obj->getporcentaje();?>" />
      
      </td>
    </tr>
   
  </table>
  <p>
    <label>
    <input type="button" name="button" value="Guardar" onclick="valida_form(this.form)" tabindex="4" />    
    </label>

  </p>
   
  <?php 
  
echo $msg;
  
?>
  

</form>


<?php
$obj
->verconsulta();
?>
</body>

</html>
afp.class.php
Código PHP:
<?php

class afp{
    
/*campo codAfp*/
    
private  $codAfp;
    public function 
setcodAfp($col){
        
$this->codAfp $col;
    }
    public function 
getcodAfp(){
        return 
$this->codAfp;
    }

    
/*campo nombre*/
    
private  $nombre;
    public function 
setnombre($col){
        
$this->nombre $col;
    }
    public function 
getnombre(){
        return 
$this->nombre;
    }

    
/*campo porcentaje*/
    
private  $porcentaje;
    public function 
setporcentaje($col){
        
$this->porcentaje $col;
    }
    public function 
getporcentaje(){
        return 
$this->porcentaje;
    }

    
/*campo letra*/
    
private  $letra;
    public function 
setletra($col){
        
$this->letra $col;
    }
    public function 
getletra(){
        return 
$this->letra;
    }

    function 
afp(){
        
$this->codAfp null;
        
$this->nombre null;
        
$this->porcentaje null;
        
$this->letra null;
    }
    
    function 
get($valor)
    {
        if(
$valor == null)
            return 
false;
            
        
$objDB = new db();
        
$sql "select * from \"afp\" where \"codAfp\" = $valor;";
        if(!
$objDB->query($sql) ){
            
$objDB->geterror();
            
//tratar errorreturn false;
        
}
        if(
$objDB->num() < 1){
            return 
false;
        }
        
$objetos $objDB->fetch();
        
$this->codAfp $objetos['codAfp'];
        
$this->nombre $objetos['nombre'];
        
$this->porcentaje $objetos['porcentaje'];
        
$this->letra $objetos['letra'];
        
$objDB->free();
        
$objDB->close();
        return 
$this;
    }
    
    function 
save(){
        
$objDB = new db();

        
$this->sql "select insertafp('$this->nombre', $this->porcentaje, $this->codAfp )";
        
        if(!
$objDB->query($this->sql) ){            
            return 
false;
        }

        
$cod $objDB->fetch();

        
$this->setcodAfp($cod[0]);
    }
    

    
/* Muestra los datos en una tabla html*/
    
function verconsulta() {
        
$objDB = new db();
        
$sql "select * from vista_afp";
        if(!
$objDB->query($sql) ){
            
            return 
false;
        }


        echo 
"<table border=\"2\" align=\"left\" cellpadding=\"0\" cellspacing=\"2\" >\n";
        echo 
"<tr>\n";
        
// mostramos los nombres de los campos
        
for ($i 0$i $objDB->numcampos(); $i++){
            echo 
"<td><b>".$objDB->nombrecampo($i)."</b></td>\n";
        }
        echo 
"<td><b>Editar</b></td>\n";    

        echo 
"</tr>\n";

        
// mostrarmos los registros
        
while ($row $objDB->fetch()) {

            echo 
"<tr> \n";

            for (
$i 0$i $objDB->numcampos(); $i++){
                if(
$row[$i] == null and $i == ){
                    echo 
"<td>Total</td>\n";
                }else{
                    if(
$row[$i] == null){
                        echo 
"<td align=\"center\">-</td>\n";
                    }else{
                        echo 
"<td>".$row[$i]."</td>\n";
                    }
                }

            }
            
            echo 
"<td><a href=\"".$_SERVER['PHP_SELF']."?opcion=editar&amp;codafp=".$row['Cod AFP']."\">Editar</a></td>";                        
            echo 
"</tr>\n";
            
            
        }
        echo 
"</table>";
    }

    function 
lista_select() {
        
$objDB = new db();
        
$sql "select \"codAfp\" as cod, nombre from afp order by nombre";
        if(!
$objDB->query($sql) ){            
            return 
false;
        }        

        
$n $objDB->numcampos();
        while (
$row $objDB->fetch()) {
            if(
$this->codAfp == $row['cod'])
                echo 
"<option value=\"".$row['cod']."\" selected=\"selected\">".$row['nombre']."</option>";
            else            
                echo 
"<option value=\"".$row['cod']."\">".$row['nombre']."</option>";

        }
    }


}
?>
  #6 (permalink)  
Antiguo 31/03/2008, 15:03
 
Fecha de Ingreso: febrero-2008
Mensajes: 8
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Refrescar lista desplegable de pagina padre desde pagina hija en ie6

afp.php es la pagina que es llamada desde index.php por un link [+] y al insertar una afp se recarga el combo de index.php

faltan mas codigos, ya casi termino....

Última edición por joseverdugo; 31/03/2008 a las 15:08 Razón: envio de claves de usuario db
  #7 (permalink)  
Antiguo 31/03/2008, 15:03
 
Fecha de Ingreso: febrero-2008
Mensajes: 8
Antigüedad: 16 años, 2 meses
Puntos: 0
Busqueda Re: Refrescar lista desplegable de pagina padre desde pagina hija en ie6

mas...


db.class.php
Código PHP:
<?php
require ("inc.config.php");

class 
db {
    
/* Variable de conexion*/
    
var $servidor;
    var 
$puerto;
    var 
$nombreBD;
    var 
$nombreDeUsuario;
    var 
$contrasena;

    
/* identificador de conexion y consulta */
    
var $enlace;
    var 
$resultado;
    var 
$consulta_id;
    var 
$sql;

    
/* texto error */
    
var $Error "";  //texto de error dado por postgres
    
var $Errno 0;   //numero de error
    
var $Errtex ""//texto de error a mostrar

    
function db(){
        
/* Declaracion de Variable de datos de conexion */
        
global $cfg;
        
/* asignacion de variables globales*/
        
$this->servidor $cfg->servidor;
        
$this->puerto $cfg->puerto;
        
$this->nombreBD $cfg->nombreBD;
        
$this->nombreDeUsuario $cfg->nombreDeUsuario;
        
$this->contrasena $cfg->contrasena;
        
        
/* Al llamar al constructor se estable crea inmediatamente la coneccion */
        /* si la coneccion se pierde se puede volver a conectar con obj->connect() */        

        
$this->connect();
    }
    
/* metodo conexion*/
    
function connect(){
        global 
$cfg;
        
/*creacion de string de conexion*/
        
$sConn "host=$this->servidor port=$this->puerto dbname=$this->nombreBD user=$this->nombreDeUsuario password=$this->contrasena";
        
/*conectar*/
        
$this->enlace pg_connect($sConn);

        
/* si la coneccion fallo, se intenta nuevamente en x segundo mas*/
        
if($cfg->reconect && !$this->enlace){
            
sleep($cfg->se_reconect);
            
$this->enlace pg_connect($sConn);
        }
        
/* si falla otra vez, se controla el error*/
        
if (!$this->enlace) {
            
$this->errControl("Ha fallado la conexión");
            return 
false;
        }
    }
    
/*metodo de ejecucion de consultas*/
    
function query($sql){
        
$this->sql $sql;

        if (
$this->sql == "") {
            
$this->errControl("No ha especificado una consulta SQL");
            return 
false;
        }

        
$this->consulta_id pg_query($this->enlace,$this->sql);

        if (!
$this->consulta_id) {
            
$this->errControl("Consulta Invalida");
            return 
false;
        }


        
        return 
true;
    }
    
/*recuperar registros*/
    
function fetch(){
        if(
$this->resultado pg_fetch_array($this->consulta_id)){
            return 
$this->resultado;

        }else{
            
// entra en este caso cuando se acaban los registros
            // no por error, es para que termine el while.
            
return false;
        }
    }

    
/* fetch que retorna todo en una matriz asociativa y numerica*/
    /* ejemplo de uso
    $tabla = $objDB->fetchm();    
    $n = count($tablas);
    for($i = 0; $i < $n; $i++){
            echo $tabla[$i][0]."\r\n";
    }    
    */
    
function fetchm(){
        
$i false;

        while( 
$fila $this->fetch() ){
            
$res[]= $fila;
            
$i true;
        }
        if(
$i)
        return 
$res;
        else
        
false;
    }

    
/* numero de campos*/
    
function numcampos() {
        return 
pg_num_fields($this->consulta_id);
    }

    
/* Devuelve el número de registros de una consulta */
    
function num(){
        return 
pg_num_rows($this->consulta_id);
    }

    
/* Devuelve el nombre de un campo de una consulta */
    
function nombrecampo($numcampo) {
        return 
pg_field_name($this->consulta_id$numcampo);
    }
    
/* Devuelve el tipo de un campo de una consulta */
    
function typecampo($numcampo) {
        return 
pg_field_type($this->consulta_id$numcampo);
    }
    
/* Muestra los datos en html de una consulta */
    
function verconsulta() {

        echo 
"<table width=\"895\" border=\"2\" align=\"center\" cellpadding=\"0\" cellspacing=\"2\" bordercolor=\"#70D361\">\n";

        
// mostramos los nombres de los campos
        
for ($i 0$i $this->numcampos(); $i++){
            echo 
"<td><b>".$this->nombrecampo($i)."</b></td>\n";
        }

        echo 
"</tr>\n";

        
// mostrarmos los registros
        
while ($row $this->fetch()) {

            echo 
"<tr> \n";

            for (
$i 0$i $this->numcampos(); $i++){
                if(
$row[$i] == null and $i == ){
                    echo 
"<td>Total</td>\n";
                }else{
                    if(
$row[$i] == null){
                        echo 
"<td align=\"center\">-</td>\n";
                    }else{
                        echo 
"<td>".$row[$i]."</td>\n";
                    }
                }

            }

            echo 
"</tr>\n";

        }
    }



    
/* Metodo para almacenar errores*/
    
function saveError(){
        global 
$cfg;
        
/*
        // Creacion de mensaje a almacenar
        $errorT = "-ERROR : ".$this->Errtex."\r\n" ;
        $fecha = "\t[".date("d")."-".date("n")."-".date("y")."]"."[".date("H").":".date("i").":".date("s")."]\r\n";
        $pagina = "\tDesde Pagina: ".$_SERVER['PHP_SELF']."\r\n";
        $ip = "\tIP: ".$_SERVER['REMOTE_ADDR']."\r\n";

        $error = "\t\"".$this->Error."\"\r\n";
        $sql =  "\t\"".$this->sql."\"\r\n";

        $save = $errorT.$fecha.$pagina.$ip.$error.$sql;

        
        // guardando en archivo
        $archivo = "../log/error.log";
        $ddf = fopen($archivo,'a+');
        fwrite($ddf, $save);
        fclose($ddf);
        */

    
}

    
/* control de errores */
    
function errControl($msg){

        
$this->Errno "";
        
$this->Error pg_last_error($this->enlace);
        
$this->Errtex $msg;
        
$this->saveError();

    }

    
    
    function 
free(){
        
pg_free_result($this->consulta_id);
        return 
true;

    }
    function 
close(){
        
pg_close($this->enlace);
        return 
true;
    }

    
}
// Fin Clase
?>

inc.config.php
Código PHP:
<?php

$cfg
->servidor "localhost"
$cfg->nombreBD "nombredb";
$cfg->puerto 5432
$cfg->nombreDeUsuario "user";
$cfg->contrasena "pass";

$cfg->se_reconect 4;
$cfg->reconect 1;

?>
.....
  #8 (permalink)  
Antiguo 31/03/2008, 15:04
 
Fecha de Ingreso: febrero-2008
Mensajes: 8
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Refrescar lista desplegable de pagina padre desde pagina hija en ie6

mas....


index.php
Código PHP:
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin t&iacute;tulo</title>
<script language="JavaScript" src="recarga_combo.js" type="text/javascript"></script>


<script language="JavaScript" type="text/javascript">
function valida_form(f)
{    
    
    f.submit();

}
</script>

</head>

<?php 
require("afp.class.php");
require(
"db.class.php");

$afp = new afp();

?>
<body>     
    
<p><strong>Agregar</strong></p>
<form id="form1" name="form1" method="get" action="">

  <table  width="940" border="0" class="borde_linea">
  <tr>
  <th colspan="6" align="left"> <strong>Datos Personales</strong> </th>
  </tr>
    <tr>
      <td width="75" >Rut</td>
      <?php 
      
if(isset($_GET["opcion"]) && $_GET["opcion"] == "editar"){
          echo 
"<td width=\"198\"><input type=\"hidden\" name=\"rut\" id=\"rut\"  value=\"\"/></td>";
      }else{
          echo 
"<td width=\"198\"><input type=\"text\" name=\"rut\" id=\"rut\"  tabindex=\"2\" value=\"\"/>";
          
          echo 
"</td>";

      }
      
?>
      
      <td width="100"></td>
      <td></td>
      <td width="110">&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>Nombre</td>
      <td><label>
        <input type="text" name="nombre" id="nombre" tabindex="3" value="" />
     
        </label></td>
      <td>Apellido P.</td>
      <td><label>
        <input type="text" name="apellidop" id="apellidop" tabindex="4" value="" />
      
      </label></td>
      <td>Apellido M.</td>
      <td><label>
        <input type="text" name="apellidom" id="apellidom" tabindex="5" value="" />
       
      </label></td>
    </tr>
    <tr>
      <td>AFP<a href="javascript:void(null)" onclick="window.open('../web/afp.php','','width=450,height=400,resizable=yes,scrollbars=yes');return false;">[+]</a></td>
      <td><label>
        <select name="codafp" id="codafp" tabindex="15" onKeypress=buscar_op(this) onblur=borrar_buffer() onclick=borrar_buffer()>
          <?php 
          $afp
->lista_select();
          
?>
        </select>
       
      </label>
           </td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
  </table>
<input type="hidden" name="opcion" id="opcion" value="save" />
   <input type="hidden" name="est" id="est" value="" />
<input type="button" name="button" value="Guardar" onclick="valida_form(this.form)" tabindex="20" />
   
   
</form>


</body>
</html>
recarga_combo.php
Código PHP:
<?php
require("afp.class.php");
require(
"db.class.php");


$combo=$_GET["select"];
$index=$_GET["tab"];

//combo id afp
if($combo == "codafp")
{    
    echo 
"<select name=\"".$combo."\" id=\"".$combo."\" tabindex=\"".$index."\" onKeypress=buscar_op(this) onblur=borrar_buffer() onclick=borrar_buffer()>";
    
$obj = new afp();
    
$obj->lista_select();
    echo   
"</select>";    
}

?>
recarga_combo.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");
    }
    catch(
e)
    {
        try
        {
            
// Creacion del objet AJAX para IE
            
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch(
E)
        {
            if (!
xmlhttp && typeof XMLHttpRequest!='undefined'xmlhttp=new XMLHttpRequest();
        }
    }
    return 
xmlhttp;
}



function 
cargaContenido(idSelectDestino)
{

    
    var 
selectDestino=document.getElementById(idSelectDestino);


    
// Creo el nuevo objeto AJAX y envio al servidor el ID del select a cargar y la opcion seleccionada del select origen
    
var ajax=nuevoAjax();
    
//dado que IE6 guarda en la cache la respuesta, se genera una direccion siempre distinta gracias a aleatorio()
    
ajax.open("GET""recarga_combo.php?select="+idSelectDestino+"&tab="+selectDestino.tabIndex+"&aleat="+Aleatorio(), true);

    
ajax.onreadystatechange=function()
    {
        
        if (
ajax.readyState==4)
        {
            
selectDestino.parentNode.innerHTML=ajax.responseText;
        }
    }
    
ajax.send(null);

}



function 
Aleatorio(){
    
aleat Math.random() * 5000;
    
aleat Math.round(aleat);
    return 
aleat;

script_postgres.sql
Código PHP:
CREATE TABLE afp
(
  
"codAfp" serial,
  
nombre character varying NOT NULL,
  
porcentaje numeric,
  
CONSTRAINT afp_pkey PRIMARY KEY ("codAfp"),
  
CONSTRAINT afp_nombre_key UNIQUE (nombre)
) ;

CREATE OR REPLACE VIEW vista_afp AS 
 
SELECT afp."codAfp" AS "Cod AFP"afp.nombre AS "AFP"afp.porcentaje AS "Porcentaje"
   
FROM afp
  ORDER BY afp
.nombre;



CREATE OR REPLACE FUNCTION insertafp(nom character varyingporc numericcod integer)
  
RETURNS character varying AS
$BODY$
declare

idafp integer;

Begin

    BEGIN

    update afp set nombre
=nomporcentaje=porc where "codAfp"=cod;

    if 
not found then

        select into idafp nextval
('"afp_codAfp_seq"');

        
insert into afp (nombre,porcentaje,"codAfp")
        
values (nom,porc,idafp);

        RETURN 
idafp;
    else

        RETURN 
cod;

    
end if;

    
EXCEPTION 
        WHEN unique_violation THEN
        
RETURN '-1';
        
when foreign_key_violation then
        
RETURN '-2';
        
    
END;

End
$BODY
$
  
LANGUAGE 'plpgsql' VOLATILE
  #9 (permalink)  
Antiguo 02/04/2008, 15:16
Avatar de LoverBoy  
Fecha de Ingreso: marzo-2008
Mensajes: 2
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Refrescar lista desplegable de pagina padre desde pagina hija en ie6

Muchas gracias JoseVerdugo


El codigo que me pasaste esta muy bueno... pero e aqui el problema, como podria implementarlo utilizando MySQL, ya que creo el PostsgreSQL (manejador de BD) es un poco mas avanzado y complicado (al menos para mi)... de todos modos mil gracias por tu aportacion... de verdad mil gracias...

Nota: Trate de cambiar el codigo solo de la BD a MySQL pero me marca error #1046 -

saludos.
  #10 (permalink)  
Antiguo 02/04/2008, 20:42
 
Fecha de Ingreso: febrero-2008
Mensajes: 8
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Refrescar lista desplegable de pagina padre desde pagina hija en ie6

Hola.

Ese numero de error no lo conocía pero según Google, ese error se da cuando cuando no has seleccionado la base de datos.
En mysql debes indicar la bd que vas a utilizar despues de crear el enlace.

este es un ejemplo de coneccion a mysql similar a la clase db de postgres anterior
Código PHP:
                  /* conectar con mysql*/
 
$this->enlace mysql_connect($this->servidor$this->nombreDeUsuario$this->contrasena);

 if (!
$this->enlace) {
     
//Ha fallado la conexión
     
return false;
 }

 
/* Selecion de BD*/
 
if (!@mysql_select_db($this->nombreBD$this->enlace)) {
     
//Ha fallado la selecion de DB
     
return false;
 } 
saludos

Última edición por joseverdugo; 02/04/2008 a las 20:43 Razón: error sintaxis
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:38.