Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/07/2010, 14:08
warbandit69
 
Fecha de Ingreso: diciembre-2008
Ubicación: http://www.solucionesrios.tk/
Mensajes: 413
Antigüedad: 17 años, 10 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!