Foros del Web » Programando para Internet » PHP »

¿ Como pasar la variable ?

Estas en el tema de ¿ Como pasar la variable ? en el foro de PHP en Foros del Web. Hola: Estoy estudiando el script de paginación que pongo a continuación pero la variable "pagina" ha de proceder de un menu que es un formulario ...
  #1 (permalink)  
Antiguo 23/03/2010, 04:09
 
Fecha de Ingreso: septiembre-2003
Mensajes: 180
Antigüedad: 20 años, 6 meses
Puntos: 1
¿ Como pasar la variable ?

Hola: Estoy estudiando el script de paginación que pongo a continuación pero la variable "pagina" ha de proceder de un menu que es un formulario y mi pregunta es ¿ Como pasaria esa variable ? ya que el enlace lo hace una "accion" y no un "href"

formulario.php
<FORM action="paginacion.php" method="post">
<P>
<LABEL for="nombre">Nombre: </LABEL>
<INPUT type="text" id="nombre"><BR>
<LABEL for="apellido">Apellido: </LABEL>
<INPUT type="text" id="apellido"><BR>
<LABEL for="email">email: </LABEL>
<INPUT type="text" id="email"><BR>
<INPUT type="radio" name="sexo" value="Varón"> Varón<BR>
<INPUT type="radio" name="sexo" value="Mujer"> Mujer<BR>
<INPUT type="submit" value="Enviar"> <INPUT type="reset">
</P>
</FORM>





paginacion.php

<?php

function conectar()
{
$base_de_datos = "noticias";
$db_usuario = "root";
$db_password = "";

if (!($link = mysql_connect("localhost", $db_usuario, $db_password)))
{
echo "Error conectando a la base de datos.";
exit();
}
if (!mysql_select_db($base_de_datos, $link))
{
echo "Error seleccionando la base de datos.";
exit();
}
return $link;
}

$db = conectar();
$registros = 3;

$pagina = $_POST["pagina"];
if (!$pagina) {
$inicio = 0;
$pagina = 1;
}
else {
$inicio = ($pagina - 1) * $registros;
}

$resultados = mysql_query("SELECT id FROM articulos WHERE visible = 1");
$total_registros = mysql_num_rows($resultados);
$resultados = mysql_query("SELECT * FROM articulos WHERE visible = 1 ORDER BY fecha DESC LIMIT $inicio, $registros");
$total_paginas = ceil($total_registros / $registros);
while($articulo=mysql_fetch_array($resultados)) {

echo "<b>".$articulo["nombre"]."</b><br>";
echo "<font color='#666666'>".$articulo["apellido"]."</font><br><br><br>";

}

if(($pagina - 1) > 0) {
echo "<a href='paginacion.php?pagina=".($pagina-1)."'>< Anterior</a> ";
}

for ($i=1; $i<=$total_paginas; $i++){
if ($pagina == $i) {
echo "<b>".$pagina."</b> ";
} else {
echo "<a href='paginacion.php?pagina=$i'>$i</a> ";
} }

if(($pagina + 1)<=$total_paginas) {
echo " <a href='paginacion.php?pagina=".($pagina+1)."'>Sigui ente ></a>";
}

?>
  #2 (permalink)  
Antiguo 23/03/2010, 06:03
 
Fecha de Ingreso: marzo-2010
Ubicación: Barcelona
Mensajes: 657
Antigüedad: 14 años, 1 mes
Puntos: 26
Respuesta: ¿ Como pasar la variable ?

A ver, 1º de todo decir que soy nuevo y que además explicadome no es que sea muy bueno, pero esto supongo que será mejor que nada

1º de todo decir que està en wordpress, así que algunas cosillas cambian, pero nada del otro mundo... creo.

Yo te popondria que utilizaras Javascript.

Mira, yo tengo una funcion que me devuelve una cadena de caracteres que será la paginación.

Código PHP:
function numero_pag_manage(){
    global 
$wpdb;
    
    
$n 0;
    
$recipients $wpdb->get_results("select * from " $wpdb->prefix "newsletter order by email");
    
    foreach(
$recipients as $r){
        
$n++;
    }
    
    
$numero $n/50;

    if((
$n 50)!=0){
        
$numero floor($numero) + 1;
    }else{
        
$numero floor($numero);
    }
    
$txt "";
    for(
$i=0;$i<$numero;$i++){
        
$txt $txt '&nbsp;<a href="javascript:void(limit_users(\''.($i+1).'\'))">' .($i+1). '</a>';
    }
    return 
$txt;

Como veras llamo a una función (limit_users($n)) que lo único que me hace és darme el rango de valores que yo deseo:

Código PHP:
function limit_users($num){
    global 
$wpdb;
    
    
$min = ($num-1)*50;
    
$max 50;
    
    
$recipients $wpdb->get_results("select * from " $wpdb->prefix "newsletter order by email LIMIT ".$min.",".$max."");
    return 
$recipients;

En mi ejemplo se mostraran valores de 50 en 50.


Ahora vamos a la pagina donde quieres que salga la paginacion.

Yo tengo puesto que para que se me muestre la lista de todos los usuarios en el campo de busqueda han de dejarlo vacio i hacer buscar. De ahi pillo una variable por post llamada a.

Código PHP:
if ($_POST['a'] == 'num')
{
    
$list limit_users(newsletter_request('email'));

Cita:
// esto es javascript
function limit_users(num){
document.getElementById("action").value = "num";
document.getElementById("numero").value = num;
document.getElementById("channel").submit();
}
Código PHP:
$num_pag numero_pag_manage();

echo 
'<table class="newsletter-results" border="1" cellspacing="5">';
echo 
'<tr><th colspan=5 align="center">'.$num_pag.'</th></tr>';
echo 
'<tr><th><a href="javascript:void(order_users_by_lang(\'email\'))">Email</a></th><th><a href="javascript:void(order_users_by_lang(\'name\'))">Name</a></th><th>' etc etc etc
con todo esto cuando el usuario clique a la paginacion, por ejemplo del 2, la funcion llamada serà javascript:void(limit_users('2');

Sé que me he explicado fatal y que lo más seguro es que no lo entiendas, porque hasta a mi me cuesta entenderme

Pero bueno, por lo menos si que te puedo decir que utilices Javascript para eso.

PD: espero que era eso lo que pedias...
  #3 (permalink)  
Antiguo 23/03/2010, 11:59
 
Fecha de Ingreso: septiembre-2003
Mensajes: 180
Antigüedad: 20 años, 6 meses
Puntos: 1
Respuesta: ¿ Como pasar la variable ?

Gracias por tu aportación, pero como decia, se trata de estudiar este caso en concreto, no darle otra solución como la que expones, por cierto muy interesante. Lo que pido es como pasar una variable desde un formulario sin el imput . Las variables a traves de la url se pasan, he leido por ahi, con una
<a href='paginadestino.php?pagina=1</a>
Pero al tratarse de un formulario donde a la pagina destino se entra con un "accion=", bien sea POST ó GET mi pregunta es esa: ¿ donde y como traslado la variable "pagina" con su valor "1" a la pagina destino. Quisiera, por favor, un ejemplo.
  #4 (permalink)  
Antiguo 23/03/2010, 12:08
 
Fecha de Ingreso: enero-2008
Ubicación: Buenos Aires
Mensajes: 305
Antigüedad: 16 años, 3 meses
Puntos: 14
Respuesta: ¿ Como pasar la variable ?

tú estás pasando la variable por un <a>, de esta manera:
Código PHP:
echo " <a href='paginacion.php?pagina=".($pagina+1)."'>Sigui ente ></a>"
Entonces en la página destino que sería, "paginacion.php" tienes que poner:
Código PHP:
echo $_GET['pagina']; 
Así estarías mostrando el valor de la variable página, o si quieres la guardas en una variable o lo que quieras
__________________
http://lucasmg.com.ar
  #5 (permalink)  
Antiguo 23/03/2010, 14:50
 
Fecha de Ingreso: septiembre-2003
Mensajes: 180
Antigüedad: 20 años, 6 meses
Puntos: 1
Respuesta: ¿ Como pasar la variable ?

¡Algunas veces que dificil es que lo entiendan a uno !
Pregunto: Como pasar una variable desde un formulario (pagina A) llamada formulario.php y que es un formulario, a una pagina (B) llamada paginacion.php
  #6 (permalink)  
Antiguo 23/03/2010, 15:10
 
Fecha de Ingreso: marzo-2010
Ubicación: Callao - Peru
Mensajes: 13
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: ¿ Como pasar la variable ?

Hola ..

Lo que quieres es enviar los datos de formulario.php a paginacion.php .. weno eso fue lo que entendi .. jejeje

Pues ahi en tu formulario.php veo que utilizas el metodo post, pues entonces en tu paginacion.php trabajarias con variables $_POST['nombre'], $_POST['apellido'] ... etc
Tambien los puedes enviar por la url osea utilizando el metodo get entonces seria $_GET['nombre'], $_GET['apellido'] ... etc

Otra cosa que veo es que no le pones nombre a tus input tipo text solo le pones id, trata de nombrarlos, me refiero al atributo name


Saludos !!!
  #7 (permalink)  
Antiguo 23/03/2010, 16:43
 
Fecha de Ingreso: marzo-2010
Ubicación: Barcelona
Mensajes: 657
Antigüedad: 14 años, 1 mes
Puntos: 26
Respuesta: ¿ Como pasar la variable ?

Cita:
Iniciado por Campesino Ver Mensaje
Gracias por tu aportación, pero como decia, se trata de estudiar este caso en concreto, no darle otra solución como la que expones, por cierto muy interesante. Lo que pido es como pasar una variable desde un formulario sin el imput . Las variables a traves de la url se pasan, he leido por ahi, con una
<a href='paginadestino.php?pagina=1</a>
Pero al tratarse de un formulario donde a la pagina destino se entra con un "accion=", bien sea POST ó GET mi pregunta es esa: ¿ donde y como traslado la variable "pagina" con su valor "1" a la pagina destino. Quisiera, por favor, un ejemplo.
No quiere pasarlo ni con GET ni con POST.

Cita:
<------------pagina html------------->
<HTML>
<HEAD>
<TITLE>origen.html</TITLE>
</HEAD>
<BODY>
<a href="destino.php?saludo=hola&texto=Esto es una variable texto">Paso variables saludo y texto a la página destino.php</a>
</BODY>
</HTML>
<------------pagina php------------->
<HTML>
<HEAD>
<TITLE>destino.php</TITLE>
</HEAD>
<BODY>
<?
echo "Variable $saludo: $HTTP_GET_VARS["saludo"] <br>n";
echo "Variable $texto: $HTTP_GET_VARS["texto"] <br>n"
?>
</BODY>
</HTML>
PD: mira esto para saber más sobre lo de arriba: http://www.desarrolloweb.com/articulos/317.php

Última edición por Vallu; 23/03/2010 a las 17:00
  #8 (permalink)  
Antiguo 24/03/2010, 02:49
 
Fecha de Ingreso: septiembre-2003
Mensajes: 180
Antigüedad: 20 años, 6 meses
Puntos: 1
Respuesta: ¿ Como pasar la variable ?

NOOOOOOOOOOOOO No es eso lo que estoy diciendo 31_Q_SOY "Lo que quieres es enviar los datos de formulario.php a paginacion.php .. weno eso fue lo que entendi .. jejeje" , no es eso, es pasar desde un formulario, he puesto ese como ejemplo, puede ser otro, con POST o con GET, como sea, pasar, además de las variables propias del formulario, los imput, pasar una variable de paginación como es "pagina=1" para que el script de paginación.php funcione, como vereis en el script de paginación.php la variable pagina recibe un valor por url $pagina = $_POST["pagina"]; bien sea por POST o por GET, POST en este caso.
  #9 (permalink)  
Antiguo 24/03/2010, 03:06
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: ¿ Como pasar la variable ?

Tienes dos opciones:

poner en el formulario esto:
Código PHP:
<input type="hidden" value="1" name="pagina"
Con lo cual, pasas por post.

O bien, en el action que sea a "paginacion.php?pagina=1" por ejemplo

De todas formas, lo suyo sería que si no recibes la variable, la seteases a 1 directamente :)

Un saludo

Etiquetas: pasar, variables
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 14:05.