Ok amigo me funciono perfecta tu solucion sin ningun problema ahora tengo un detalle en mi funcion, es que cuando la ejecuto directo con php no me funciona, la copio y la pego desde el codigo fuente de la pagina directa, y me funciona, es decir asi no me funciona:
Código PHP:
<script type="text/javascript">
<?php
print grid_scroll_bar("PRUEBA","SELECT *
FROM `personal`","PRUEBA","cedula,nombre,apellido,correo,usuario","","320","600",$hostname_obras,$database_obras,$username_obras,$password_obras,$columnas);
?>
</script>
Asi si me funciona (dandole al navegador boton derecho, ver codigo fuente, copiando el codigo y poniendolo directo), y acomodando los espacios
Código HTML:
<script type='text/javascript'>
Ext.onReady(function(){
var myData = [
['15727241','Ricardo','Ríos','[email protected]','ricardorios'],
['9792332','Vitaliano','Giannangeli','[email protected]','vgr']
];
var store = new Ext.data.Store({
proxy: new Ext.ux.data.PagingMemoryProxy(myData),
remoteSort:true,
sortInfo: {field:'cedula', direction:'DESC'},
reader: new Ext.data.ArrayReader(
{fields: [
{name:'cedula'},
{name:'nombre'},
{name:'apellido'},
{name:'correo'},
{name:'usuario'}]
})
})
var grid = new Ext.grid.GridPanel(
{store: store, columns: [
{id: "cedula", width: 120, sortable: true, dataIndex: 'cedula'},
{header: "nombre", width: 120, sortable: true, dataIndex: 'nombre'},
{header: "apellido", width: 120, sortable: true, dataIndex: 'apellido'},
{header: "correo", width: 120, sortable: true, dataIndex: 'correo'},
{header: "usuario", width: 120, sortable: true, dataIndex: 'usuario'}
],
stripeRows: true,
autoExpandColumn: 'cedula',
height:320,
width:600,
frame:true,
title:'PRUEBA',
plugins: new Ext.ux.PanelResizer({
minHeight: 100
}),
bbar: new Ext.PagingToolbar({
pageSize: 10,
store: store,
displayInfo:
true,plugins: new Ext.ux.ProgressBarPager()
})
});
grid.render('PRUEBA');
store.load({params:{start:0, limit:10}});
});
</script>
Aca mi función en php Que aun no he logrado que me sirva bien T_T
Código PHP:
function grid_scroll_bar($titulo,$consulta,$div,$campos,$campos_hint,$alto,$ancho,$hostname_obras,$database_obras,$username_obras,$password_obras,$columnas) {
$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 = sprintf($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);
$ancho_columnas = $ancho/$total_campos;
$grid = "Ext.onReady(function(){";
$grid .= "var myData = [";
if ($campos_hint!="") {
$query_hintsql = "WHERE ".$campo[0]." LIKE '".$row_gridsql[$id_campo]."'";
mysql_select_db($database_obras, $obras);
$query_hintsql = sprintf($consulta);
$hintsql = mysql_query($query_hintsql, $obras) or die(mysql_error());
$row_hintsql = mysql_fetch_assoc($hintsql);
}
$l = 0;
do {
$arreglo_indices = array();
$l++;
$grid .= "[";
for ($i = 0; $i < $total_campos; $i++) {
$id_campo = $campo[$i];
$arreglo_indices[] = "'".$row_gridsql[$id_campo]."'";
}
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: \"".$campo[$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 .= "});";
return $grid;
}