Foros del Web » Programando para Internet » PHP »

Problemas con consulta a la hora de mostrar un hint (mezcla php mas javascript)

Estas en el tema de Problemas con consulta a la hora de mostrar un hint (mezcla php mas javascript) en el foro de PHP en Foros del Web. Buenas Tardes Foreros, muchas gracias por leer mi post. Hice una función mezclando php con javascript al mismo tiempo, ayudado con la clase llamada extjs ...
  #1 (permalink)  
Antiguo 20/07/2010, 14:08
 
Fecha de Ingreso: diciembre-2008
Ubicación: http://www.solucionesrios.tk/
Mensajes: 413
Antigüedad: 15 años, 3 meses
Puntos: 19
Busqueda Problemas con consulta a la hora de mostrar un hint (mezcla php mas javascript)

Buenas Tardes Foreros, muchas gracias por leer mi post.

Hice una función mezclando php con javascript al mismo tiempo, ayudado con la clase llamada extjs o sencha (como se llama ahora), la cual es la siguiente:

Código PHP:

function grid_scroll_bar3(
$enlace#El enlace a donde queremos dirigir al usuario en el caso que haga clic el en enlace
$titulo#Titulo que va a tener el grid
$consulta#Consulta SQL donde quiero mostrar los datos (puede ser una vista)
$div#Nombre del div donde queremos poner el grid (no se puede repetir en una misma página
$titulos_campos#Titulo de los campos  que vamos a mostrar (debe tener la misma cantidad que la variable $campos)
$campos#Nombre de los campos de la tabla (debe tener la misma cantidad que la variable $titulos_campos)
$campos_hint#Nombre de los campos de la tabla que queremos mostrar como hint
$titulos_hint#Titulo de los campos que queremos mostrar como hint
$alto#Alto del grid
$ancho#ancho del grid
$hostname_obras#Servidor BD (se toma del script de conexión)
$database_obras#Nombre de la Base de Datos (se toma del script de conexión)
$username_obras#Usuario de la Base de Datos (se toma del script de conexión)
$password_obras#Clave del usuario de la base de datos (se toma del script de conexión)
$columnas #Número de columnas que deseamos mostrar en el grid, por defecto son 10

{
    
    
$hint__1 "";
    
    
$obras mysql_pconnect($hostname_obras$username_obras$password_obras) or trigger_error(mysql_error(),E_USER_ERROR);  //Se usan rutas persistentes
    
mysql_select_db($database_obras$obras);
    
$query_gridsql $consulta;
    
$gridsql mysql_query($query_gridsql$obras) or die(mysql_error());
    
$row_gridsql mysql_fetch_assoc($gridsql);
    
$totalRows_gridsql mysql_num_rows($gridsql);
    

    
$campo explode(",",$campos);
    
$total_campos count($campo);
    
$titulos_campos1 explode(",",$titulos_campos);
    
$total_titulos_campos count($titulos_campos1);
    
    if (
$total_titulos_campos!=$total_campos) {
        
        echo 
"La cantidad de titulos no corresponde a la cantidad de campos de la consulta, por favor verifique los datos ingresados a la función";
        exit();
        
    }
    
    
$ancho_columnas $ancho/$total_campos;
    
    
$grid "<script type='text/javascript'>
    "
;
    
$grid .= "Ext.onReady(function(){
        "
;
    
$grid .= "var myData = [
    "
;
    
$l 0;
    do {

        
$arreglo_indices = array();
        
$l++;
        
$grid .= "[";
        for (
$i 0$i $total_campos$i++) {
            
$id_campo $campo[$i];
            if(
$campos_hint!="") {
                
                
$consulta_hint0 explode("WHERE",$consulta);
                
$total_consulta_hint0 count($consulta_hint0);
                
$consulta_campo_hint explode(".",$campo[0]);
                if(empty(
$consulta_campo_hint[1])) {
                    
$campo_consulta_hint $consulta_campo_hint[0];
                } else {
                    
$campo_consulta_hint $consulta_campo_hint[1];
                }
                if (
$total_consulta_hint0>1) {
                    
                    
$consulta_hint3 explode("ORDER",$consulta_hint0[1]);
                    
$total_consulta_hint3 count($consulta_hint3);
                    
                    if (
$total_consulta_hint3>1) {
                        
                        
$consultahint $consulta_hint0[0]." WHERE ".$consulta_hint3[0]." AND ".$campo[0]." LIKE '".$row_gridsql[$campo_consulta_hint]."' ORDER ".$consulta_hint3[1];
                        
                    } else {
                        
                        
$consultahint $consulta_hint0[0]." WHERE ".$consulta_hint0[1]." AND ".$campo[0]." LIKE '".$row_gridsql[$campo_consulta_hint]."'";
                    }
                    
                } else {
                    
                    
$consulta_hint1 explode("ORDER",$consulta);
                    
$total_consulta_hint1 count($consulta_hint1);
                    
                    if (
$total_consulta_hint1>1) {
                        
                        
$consultahint $consulta_hint1[0]." WHERE ".$campo[0]." LIKE '".$row_gridsql[$campo_consulta_hint]."' ORDER ".$consulta_hint1[1];
                        
                    } else {
                        
                        
$consultahint $consulta." WHERE ".$campo[0]." LIKE '".$row_gridsql[$campo_consulta_hint]."'";
                    }
                    
                }
                
                
mysql_select_db($database_obras$obras);
                
                
#echo $consultahint;
                #echo "<p>&nbsp;</p>";
                #echo $query_gridsql;
                #exit();
                
                
$query_hintsql $consultahint."LIMIT 1";
                
$hintsql mysql_query($query_hintsql$obras) or die(mysql_error());
                
$row_hintsql mysql_fetch_assoc($hintsql);
                
$totalRows_hintsql mysql_num_rows($hintsql);
        
                
$camp_hints explode(",",$campos_hint);
                
$total_camp_hints count($camp_hints);
        
                
$titulos__hint explode(",",$titulos_hint);
                
$total_titulos_hints count($titulos__hint);
        
                if (
$total_titulos_hints!=$total_camp_hints) {
            
                    echo 
"La cantidad de titulos no corresponde a la cantidad de campos del hints, por favor verifique los datos ingresados a la función";
                    exit();
            
                }

                
$arreglo_campos_hints = array();
        
                for (
$p 0$p $total_camp_hints$p++) {
                
                    
$ide2_campos_hints explode(".",$camp_hints[$p]);
                    if(empty(
$ide2_campos_hints[1])) {
                        
$ide2_campos_hints2 $ide2_campos_hints[0];
                    } else {
                        
$ide2_campos_hints2 $ide2_campos_hints[1];
                    }
                    
$muestra_variable1 $row_hintsql[$ide2_campos_hints2];
                    if (
$p!=0) {
                        
$muestra_variable1 $row_hintsql[$ide2_campos_hints2];            
                        if(
is_numeric($row_hintsql[$ide2_campos_hints2])) {
                            
$muestra_variable1 marcarmonto($row_hintsql[$ide2_campos_hints2]);
                        }
                        
$siesfecha1 explode("-",$row_hintsql[$ide2_campos_hints2]);
                        if((!empty(
$siesfecha1[2])) && (!empty($siesfecha1[1])) && (!empty($siesfecha1[0]))) {
                            
$ano1 $siesfecha1[0];
                            
$mes1 $siesfecha1[1];
                            
$dia1 $siesfecha1[2];
                            if (
checkdate ($mes1$dia1$ano1))
                            {
                                
$muestra_variable1 $dia1."/".$mes1."/".$ano1;
                            }    
                        }
                    }
                    
$arreglo_campos_hints[$p] = "<li><u>".$titulos__hint[$p]."</u> : ".$muestra_variable1."</li>"#Linea con problemas
            
                
}
        
                
$mezcla implode("",$arreglo_campos_hints);
                
$hint__1 "<ul>".$mezcla."</ul>";

        
            }
            
$principal_campo explode(".",$campo[0]);
            if(empty(
$principal_campo[1])) {
                
$campo_principal $principal_campo[0];
            } else {
                
$campo_principal $principal_campo[1];
            }
            if(
$i == 0){
            
$ide_campo explode(".",$campo[$i]);
            if(empty(
$ide_campo[1])) {
                
$id_campo2 $ide_campo[0];
            } else {
                
$id_campo2 $ide_campo[1];
            }    
//javascript:Abrir_ventana('popup.html')
                
$arreglo_indices[] =  "<span class='tip' onmouseover='tooltip(\"".$hint__1."\")' onmouseout='exit();'><a href=\"javascript:popUp('".$enlace."?recordID=".$row_gridsql[$campo_principal]."')\" >".$row_gridsql[$campo_principal]."</a></span>";    
                
            } else {
                
$campo_punto explode(".",$id_campo);
                if(
count($campo_punto)>1) { 
                    
$consulta_punto $campo_punto[1]; 
                } else {
                    
$consulta_punto $campo_punto[0];
                }
                
$muestra_variable $row_gridsql[$consulta_punto];            
                if(
is_numeric($row_gridsql[$consulta_punto])) {
                    
$muestra_variable marcarmonto($row_gridsql[$consulta_punto]);
                }
                
$siesfecha explode("-",$row_gridsql[$consulta_punto]);
                if((!empty(
$siesfecha[2])) && (!empty($siesfecha[1])) && (!empty($siesfecha[0]))) {
                    
$ano $siesfecha[0];
                    
$mes $siesfecha[1];
                    
$dia $siesfecha[2];
                    if (
checkdate ($mes$dia$ano))
                    {
                        
$muestra_variable $dia."/".$mes."/".$ano;
                    }    
                }
                
                
                
$arreglo_indices[] =  "<span class='tip' onmouseover='tooltip(\"".$hint__1."\")' onmouseout='exit();'><a href=\"javascript:popUp('".$enlace."?recordID=".$row_gridsql[$campo_principal]."')\" id='grid_css_gobernacion'>".$muestra_variable."</a></span>";                
            }
            
        }
        if (
count($arreglo_indices) > 0) {
            
$arreglo1 implode(",",$arreglo_indices);
            
$grid .= $arreglo1;
        }
        
        if (
$totalRows_gridsql != $l) {
            
$grid .= "],
            "
;
        } else {
            
$grid .= "]
            "
;
        }
    } while(
$row_gridsql mysql_fetch_assoc($gridsql));
    
$grid .= "];
    "
;
    
// create the data store
    
$grid .= "var store = new Ext.data.Store({
        "
;
    
$grid .= "proxy: new Ext.ux.data.PagingMemoryProxy(myData),
    "
;
    
$grid .= "remoteSort:true,
    "
;
    
$grid .= "sortInfo: {field:'".$campo[0]."', direction:'DESC'},
    "
;
    
$grid .= "reader: new Ext.data.ArrayReader({
        "
;
    
$grid .= "fields: [
    "
;
    
//Empezar ciclo
    
for ($j 0$j $total_campos$j++) {
        
$arreglo_nombres[] = "{name:'".$campo[$j]."'}
        "
;
    }
    
$grid .= implode(",",$arreglo_nombres);
    
//Finalizar ciclo
      
$grid .= "]
    "
;
    
$grid .= "})
    "
;
    
$grid .= "})
    "
;
    
// create the Grid
    
$grid .= "var grid = new Ext.grid.GridPanel({
        "
;
    
$grid .= "store: store,
    "
;
    
$grid .= "    columns: [
    "
;
    
//Empezar el ciclo
    
for ($k 1$k $total_campos$k++) {
        
$arreglo_campos[] = "{header: \"".$titulos_campos1[$k]."\", width: ".$ancho_columnas.", sortable: true, dataIndex: '".$campo[$k]."'}
        "
;
    }
    
//Finalizar ciclo
    
$grid .= "{id: \"".$campo[0]."\", width: ".$ancho_columnas.",  sortable: true, dataIndex: '".$campo[0]."'},
    "
.implode(",",$arreglo_campos);
    
$grid .= "    ],
    "
;
    
$grid .= "   stripeRows: true,
    "
;
    
$grid .= "    autoExpandColumn: '".$campo[0]."',
    "
;
    
$grid .= "    height:".$alto.",
    "
;
    
$grid .= "   width:".$ancho.",
    "
;
    
$grid .= "   frame:true,
    "
;
    
$grid .= "   title:'".$titulo."',
    "
;
    
$grid .= "  plugins: new Ext.ux.PanelResizer({
        "
;
    
$grid .= "       minHeight: 100
    "
;
    
$grid .= "   }),
    "
;
    
$grid .= "bbar: new Ext.PagingToolbar({
        "
;
    
$grid .= "pageSize: 10,
    "
;
    
$grid .= "store: store,
    "
;
    
$grid .= "displayInfo: true,
    "
;
    
$grid .= "plugins: new Ext.ux.ProgressBarPager()
    "
;
    
$grid .= "   })
    "
;
    
$grid .= "});
    "
;
    
$grid .= "grid.render('".$div."');
    "
;
    
$grid .= "store.load({params:{start:0, limit:".$columnas."}});
    "
;
    
$grid .= "});
"
;
    
$grid .= "</script>
"
;
    
$grid .= "<div id='".$div."'></div>
    "
;
    
    
    return 
$grid;

__________________
http://www.solucionesrios.tk/

Visita mi Web!
  #2 (permalink)  
Antiguo 20/07/2010, 14:09
 
Fecha de Ingreso: diciembre-2008
Ubicación: http://www.solucionesrios.tk/
Mensajes: 413
Antigüedad: 15 años, 3 meses
Puntos: 19
Respuesta: Problemas con consulta a la hora de mostrar un hint (mezcla php mas javasc

Esta función la llamo desde cualquier parte con el siguiente código

Código PHP:

echo grid_scroll_bar3(
"asignacion_gobernador3.php"#El enlace a donde queremos dirigir al usuario en el caso que haga clic el en enlace
"Asignaciones del Gobernador"#Titulo que va a tener el grid
"SELECT 
  ob_proyectos.correlativo,
  ob_proyectos.descripcion AS 'DESCRIPCION',
  ob_proyectos.asignado AS 'MONTO',
  ob_proyectos.fecha AS 'FECHA',
  ag_fuente_recursos.descripcion AS 'RECURSOS'
FROM
  ob_proyectos
 INNER JOIN
  `ag_fuente_recursos` ON `ob_proyectos`.`fte_recursos` = ag_fuente_recursos.`fte_recursos`
INNER JOIN ta_obras_actividades ON ta_obras_actividades.cod_proyecto = ob_proyectos.correlativo
WHERE ta_obras_actividades.status = 'Iniciada' OR ta_obras_actividades.status = 'Por Iniciar'"
#Consulta SQL donde quiero mostrar los datos (puede ser una vista)
"asignaciones"#Nombre del div donde queremos poner el grid (no se puede repetir en una misma p&Atilde;&iexcl;gina
"CORRELATIVO,DESCRIPCION,MONTO EST.,FECHA,FTE. RECURSOS"#Titulo de los campos  que vamos a mostrar (debe tener la misma cantidad que la variable $campos)
"ob_proyectos.correlativo,DESCRIPCION,MONTO,FECHA,RECURSOS"#Nombre de los campos de la tabla (debe tener la misma cantidad que la variable $titulos_campos)
"ob_proyectos.correlativo,DESCRIPCION,MONTO,FECHA,RECURSOS"#Nombre de los campos de la tabla que queremos mostrar como hint
"CORRELATIVO,DESCRIPCION,MONTO EST.,FECHA,FTE. RECURSOS"#Titulo de los campos que queremos mostrar como hint
"320"#Alto del grid
"560"#ancho del grid
$hostname_obras#Servidor BD (se toma del script de conexi&Atilde;³n)
$database_obras#Nombre de la Base de Datos (se toma del script de conexi&Atilde;³n)
$username_obras#Usuario de la Base de Datos (se toma del script de conexi&Atilde;³n)
$password_obras#Clave del usuario de la base de datos (se toma del script de conexi&Atilde;³n)
$columnas #N&Atilde;&ordm;mero de columnas que deseamos mostrar en el grid, por defecto son 10
); 
Me funciona perfectamente sin ningún filtro los hints







Pero sucede que a la hora de requerir un filtro (que incluya un where) la consulta mysql que le asigno a la función, esta no me realiza los hints, si no que repite el mismo hint para todas las consultas, de verdad ya no hayo que hacer







Llevo ya varios días viendo cual es el error, pues parece más de lógica que de código, espero alguien de ustedes me pueda ayudar a resolver este problema que de verdad me tiene ya de psiquiatrico
__________________
http://www.solucionesrios.tk/

Visita mi Web!

Etiquetas: javascript, mas
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 01:53.