Foros del Web » Programando para Internet » PHP »

Paginar...

Estas en el tema de Paginar... en el foro de PHP en Foros del Web. Seguramente han hecho un select que devuelve varios registros y necesitaron paginarlos (como con paginator). El tema esta en si tienen idea de algun link ...
  #1 (permalink)  
Antiguo 06/08/2005, 01:28
 
Fecha de Ingreso: octubre-2003
Mensajes: 32
Antigüedad: 20 años, 6 meses
Puntos: 0
Paginar desde select...

Seguramente han hecho un select que devuelve varios
registros y necesitaron paginarlos (como con paginator).

El tema esta en si tienen idea de algun link o web que muestre como despues de seleccionar unas opciones de dos select's dependientes, enviar la orden a algun paginador (como paginator) para que me muestre los resultados obtenidos (el contenido de algunos campos de la base de datos), pero en otro frame.

¿Como lo hago?

saludos
  #2 (permalink)  
Antiguo 06/08/2005, 16:16
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Hola Jaime0404:

No termino de entender cuál es el problema que tienes.
¿Qué es exactamente lo que sí puedes hacer y lo que no?

-Primero tienes que saber mostrar los resultados de una consulta hecha desde un formulario ¿Sabes?
-Luego tienes que saber relacionar los selects ¿sabes?
-Luego tienes que saber cargar el resultado en otro frame ¿sabes? (Bastará con poner el "taget" en la etiqueta form)

Saludos
  #3 (permalink)  
Antiguo 18/08/2005, 11:51
 
Fecha de Ingreso: octubre-2003
Mensajes: 32
Antigüedad: 20 años, 6 meses
Puntos: 0
Pregunta Paginar...

Hola!

Estoy tratando de agregar el Paginator (script que realiza la paginación) a mi proyecto, pero no puedo hacer que funcione (llevo dias intentando resolverlo, pero no puedo) .

La situacion es esta: a partir de dos listas dependientes (selects) quiero armar la consulta ($_pagi_sql) que recibe el paginator. La pagina que tengo esta conformada por tres frames, en el primero estan las dos listas dependientes (enlazadas a base de datos). En el segundo frame es donde quiero que se muestren los resultados de la paginacion.

¿Como armo la consulta SQL a partir de lo seleccionado en los dos selects?
¿Como puedo hacer para que los datos (consulta) de la paginacion sean mostrados en el otro frame?

Gracias.
  #4 (permalink)  
Antiguo 18/08/2005, 12:33
Avatar de Sir Matrix  
Fecha de Ingreso: octubre-2000
Ubicación: Dentro de mi cabeza. ono?
Mensajes: 1.264
Antigüedad: 23 años, 6 meses
Puntos: 3
hola, no se si te ayude, pero aquí hay una forma bastante simple de paginar:

http://www.webmagic.cl/rcoment.php

En la misma página está el código y un ejemplo (donde estan los comentarios)

slds
__________________
|||| ))>_<(( ||||
www.webmagic.cl <-- esta pagina está mala, no la busquen
  #5 (permalink)  
Antiguo 18/08/2005, 14:21
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Hola Jaime0404:
Me gustaría saber el código que has intentado implementar para ayudarte a descubrir los errores con mayor facilidad.
Postea el código donde haces los selects dependientes y da toda la información posible. De otra manera nos pasaríamos mucho tiempo tratando de adivinar...

Saludos y gracias por utilizar Paginator y compartir tus dudas
  #6 (permalink)  
Antiguo 20/08/2005, 02:59
 
Fecha de Ingreso: octubre-2003
Mensajes: 32
Antigüedad: 20 años, 6 meses
Puntos: 0
Pregunta Paginar...

Hola!

Estoy tratando de agregar el Paginator (script de JPinedo que realiza la paginación) a mi proyecto, pero no puedo hacer que funcione (llevo dias intentando resolverlo, pero no puedo) .

La situacion es esta: a partir de dos listas dependientes (selects) quiero armar la consulta ($_pagi_sql) que recibe el paginator. La pagina que tengo esta conformada por tres frames, en el primero estan las dos listas dependientes (enlazadas a base de datos). En el segundo frame es donde quiero que se muestren los resultados de la paginacion.

¿Como armo la consulta SQL a partir de lo seleccionado en los dos selects?
¿Como hago que lo seleccionado (el valor) en el 1er select no se pierda?
¿Como puedo hacer para que los datos (consulta) de la paginacion sean mostrados en el otro frame?

Gracias.


Este es el codigo que ocupo en top.php (1er frame):

<?
require ("usuario/aut_config.inc.php"); // incluir configuracion.
$db_conexion= mysql_connect("$sql_host", "$sql_usuario", "$sql_pass") or die("No se pudo conectar a la Base de datos") or die(mysql_error());
mysql_select_db("$sql_db") or die(mysql_error());
?>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF">
<?
if (!empty($_POST['enviado'])){

// Procesar el formulario ...
echo "Procesando formulario:<br>";
echo "Recibido id_tabla_padre: ".$_POST['id_padre']."<br>";
echo "Recibido id_tabla_hija: ".$_POST['id_hija'];
$_pagi_sql = "SELECT * FROM $sql_tabla WHERE especialidad='$id_padre' AND colonia='$id_hija'";
echo $_pagi_sql;
} else {

$db_conexion= mysql_connect("$sql_host", "$sql_usuario", "$sql_pass") or die("No se pudo conectar a la Base de datos") or die(mysql_error());
mysql_select_db("$sql_db") or die(mysql_error());

// Obtener el $id_padre del envio a si mismo del formulario ..
$id_padre=$_POST['id_padre'];
// Inicio Formulario .. PHP_SELF enviamos a si mismo (a este script).
echo "<form action=\"".$_SERVER['PHP_SELF']."\" method=\"POST\">\n\n";

// Formar Selec "Padre".
echo "<select name=\"id_padre\" onChange=\"this.form.submit()\">\n";
echo "<option value=\"\"> <---Especialidad---> </option>\n";

$consulta_padre = mysql_query("SELECT * FROM $sql_tabla GROUP BY especialidad") or die("No se pudo realizar la consulta a la Base de datos");

While ($registro_padre=mysql_fetch_assoc($consulta_padre )){
// Se mira si el ID del registro es el mismo q el $id_padre q recibimos si hemos cambiado el select hijo.
// Se selecciona en consecuencia (selected) la opción elegida.
if ($id_padre == $registro_padre['ID']){
echo "<option value=\"".$registro_padre['especialidad']."\">".$registro_padre['especialidad']."</option>\n";
} else {
echo "<option value=\"".$registro_padre['especialidad']."\">".$registro_padre['especialidad']."</option>\n";
}
}
echo "</select>\n\n<br>";

mysql_free_result($consulta_padre); // Liberar memoria usada por consulta.

// Formar Select "Hijo"
echo "<select name=\"id_hija\">\n";

// Si $id_padre no tiene valor (caso de que no se ha seleccionado ningua opcion del select hijo
// se muestra el mensaje de "seleccine un item" (del select padre).
if (!empty($id_padre)){

$consulta_hija = mysql_query("SELECT * FROM $sql_tabla WHERE especialidad='$id_padre' GROUP BY colonia ORDER BY colonia") or die("No se pudo realizar la consulta a la Base de datos");

// se mira el total de registros de la consulta .. si es 0 se muestra mensaje en el select ..
if (mysql_num_rows($consulta_hija) != 0){
While ($registro_hija=mysql_fetch_assoc($consulta_hija)) {
echo "<option value=\"".$registro_hija['colonia']."\">".$registro_hija['colonia']."</option>\n";
}
} else {
echo "<option value=\"\"> No hay registros para este elemento </option>";
}
} else {
echo "<option value=\"\"> <-- Seleccione un elemento </option>";
}

mysql_free_result($consulta_hija); // Liberar memoria usada por consulta.

echo "</select>\n\n<br>";
echo "<input type=\"submit\" name=\"enviado\" value=\" Enviar \" >\n\n";
echo "</form>\n";
}
?>
</body>
</html>



Este es el codigo que ocupo en main.php (2do frame):

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?
include("paginator.inc.php");
?>
</body>
</html>
  #7 (permalink)  
Antiguo 20/08/2005, 06:19
 
Fecha de Ingreso: junio-2005
Mensajes: 343
Antigüedad: 18 años, 10 meses
Puntos: 10
En www.maniacosdigitales.labarana.com tienes un proyecto de paginador que hice. Solo hace falta que le des la tabla de la base de datos y pongas que campo quieres usar para ordenar los registros y el modo (ASC o DESC)

Espero que te sirva.
  #8 (permalink)  
Antiguo 20/08/2005, 10:03
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Jaime0404:
Qué bueno que hiciste tu consulta aquí.
El problema principal que tienes son los frames, ya que el primer submit del formulario debe hacerse sobre el mismo frame para que cargue la lista "hija". Luego el segundo submit debe hacerse hacia otro frame.

Te recomiendo ir paso a paso.
Primero sin utilizar frames, hagamos que los valores del formulario no se pierdan. Simplemente agrega "selected". El script original de Custer lo tiene y parece que se te olvidó incluirlo.
Código PHP:
// Se selecciona en consecuencia (selected) la opción elegida. 
if ($id_padre == $registro_padre['ID']){ 
echo 
"<option value=\"".$registro_padre['especialidad']."\" selected>".$registro_padre['especialidad']."</option>\n"
} else { 
echo 
"<option value=\"".$registro_padre['especialidad']."\">".$registro_padre['especialidad']."</option>\n"

Segundo: Deberías postear aquí la consulta que quieres obtener para poder ayudarte a armarla.
Tercero: Después de solucionar el segundo, ya nos metemos con los frames.

Saludos
  #9 (permalink)  
Antiguo 20/08/2005, 10:50
 
Fecha de Ingreso: octubre-2003
Mensajes: 32
Antigüedad: 20 años, 6 meses
Puntos: 0
Pregunta

Hola!
Gracias por sus respuestas.

Ya le agregue al select el selected, pero sigue ocurriendo lo mismo, el valor de $id_padre se sigue perdiendo; no es agregado el selected despues del primer submit, ¿que puede estar sucediendo?.

Con respecto al segundo punto mi consulta es esta:

$_pagi_sql = "SELECT * FROM $sql_tabla WHERE especialidad='$id_padre' AND colonia='$id_hija'";

Teniendo esta consulta armada, lo que quiero es enviar la variable $_pagi_sql al paginador (Paginator) para que me muestre los campos de la base de datos que cumplan con los criterios de busqueda (especialidad y colonia).

Saludos
  #10 (permalink)  
Antiguo 20/08/2005, 11:37
 
Fecha de Ingreso: octubre-2003
Mensajes: 32
Antigüedad: 20 años, 6 meses
Puntos: 0
Pregunta

Hola!

Encontre el problema por lo que "selected" no se agregaba, el problema estaba en el If del $registro_padre, el cambio que hice fue este:

Código PHP:
// Se selecciona en consecuencia (selected) la opción elegida. 
if ($id_padre == $registro_padre['ID'])//Modifico en esta linea el ID
if ($id_padre == $registro_padre['especialidad']){  // Y pongo esto: especialidad
echo "<option value=\"".$registro_padre['especialidad']."\" selected>".$registro_padre['especialidad']."</option>\n"
} else { 
echo 
"<option value=\"".$registro_padre['especialidad']."\">".$registro_padre['especialidad']."</option>\n"

Primer punto: Solucionado. Se mantienen los valores despues del primer submit.


Segundo punto:

Con respecto al segundo punto mi consulta es esta:

Código PHP:
$_pagi_sql "SELECT * FROM $sql_tabla WHERE especialidad='$id_padre' AND colonia='$id_hija'"
Esta consulta es armada inmediatamente despues del segundo "submit".

Teniendo esta consulta armada, lo que quiero es enviar la variable $_pagi_sql al paginador (Paginator) para que me muestre los campos de la base de datos que cumplan con los criterios de busqueda (especialidad y colonia).

Saludos
  #11 (permalink)  
Antiguo 23/08/2005, 22:11
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Jaime0404:

Por favor, deja de abrir nuevos temas con esta pregunta repetida. Te puedes ganar una advertencia por parte de los moderadores y lo más probable es que te cierren los temas.

Tu consulta no tiene que ver directamente con Paginator.
Tu problema es:
- Tienes un formulario cuyo "submit" debe hacerse a sí mismo para cargar los "select's" anidados. Pero luego ese submit debe apuntar a otro frame cuando se haga clic en el botón "enviar".

Eso es lo que debes preguntar.
Por favor no abras más temas. Insiste aquí mismo.

Saludos
  #12 (permalink)  
Antiguo 25/08/2005, 21:38
 
Fecha de Ingreso: octubre-2003
Mensajes: 32
Antigüedad: 20 años, 6 meses
Puntos: 0
Pregunta

Antes que nada una disculpa por haber repetido tantas veces el mismo tema, soy nuevo en esto de los foros y estoy aprendiendo su uso.

Volviendo a lo de mi consulta, le agradeceria bastante a quien me pueda ayudar con este problema (Solucionar el problema con los frames).

Saludos
  #13 (permalink)  
Antiguo 27/08/2005, 13:05
 
Fecha de Ingreso: octubre-2003
Mensajes: 32
Antigüedad: 20 años, 6 meses
Puntos: 0
Exclamación

No hay quien me pueda ayudar con mi problema???

De antemano gracias.
  #14 (permalink)  
Antiguo 29/08/2005, 11:36
 
Fecha de Ingreso: octubre-2003
Mensajes: 32
Antigüedad: 20 años, 6 meses
Puntos: 0
Pregunta

Necesito ayuda, por favor.


Alguien me puede ayudar??

Alguno de los moderadores sabe como resolver esto??


De antemano Gracias.
  #15 (permalink)  
Antiguo 30/08/2005, 11:29
 
Fecha de Ingreso: octubre-2003
Mensajes: 32
Antigüedad: 20 años, 6 meses
Puntos: 0
Pregunta

Hola

Despues de varios post's veo que nadie sabe del tema (o no desean contestarme).

Solicito al moderador del foro o del sitio que mi tema sea movido al foro que crea conveniente, o en su defecto sea cerrado (agradeceria si ustedes, moderadores, pudieran ayudarme).

Gracias
  #16 (permalink)  
Antiguo 30/08/2005, 13:10
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Hola:
He publicado tu consulta en el foro de JavaScript:
http://www.forosdelweb.com/f13/seleccionar-target-form-desde-funcion-javascript-329492/#post1238255

esperemos que alguien sepa.

Saludos
  #17 (permalink)  
Antiguo 30/08/2005, 17:00
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Bueno Jaime0404:
No te deprimas.
safe ya respondió en el foro de JavaScript. Espero que lo entiendas y funcione. De lo contrario insiste en el tema abierto en JavaScript.

Saludos
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 15:53.