Foros del Web » Programando para Internet » Javascript »

se me pierde el valor de la variable

Estas en el tema de se me pierde el valor de la variable en el foro de Javascript en Foros del Web. hola a todos estoy amoldando un paginador+buscador que he encontrado en internet.... Va perfecto y es muy entendible, pero no se porque al arreglarlo yo ...
  #1 (permalink)  
Antiguo 19/01/2012, 02:13
Avatar de pampa_  
Fecha de Ingreso: mayo-2006
Mensajes: 334
Antigüedad: 17 años, 11 meses
Puntos: 1
se me pierde el valor de la variable

hola a todos estoy amoldando un paginador+buscador que he encontrado en internet....

Va perfecto y es muy entendible, pero no se porque al arreglarlo yo y añadirle un campo mas para hacer busqueda resulta que la primera vez si que me saca el resultado pero si navego por el paginador pierde la variable por la que quiero buscar.... alguien sabria decirme que debo hacer para que no pierda la variable??

Gracias
este es el codigo
Código PHP:
Ver original
  1. <?php
  2. $link=mysql_connect("fdb.com", "anuncios", "1234");
  3.     mysql_select_db("anuncios", $link);
  4. ?>
Código HTML:
Ver original
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <title>ejemplo de paginaci&oacute;n de resultados</title>
  3. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  4. <meta http-equiv="Pragma" content="no-cache" />
  5. <style type="text/css">
  6. <!--
  7. a.p:link {
  8.     color: #0066FF;
  9.     text-decoration: none;
  10. }
  11. a.p:visited {
  12.     color: #0066FF;
  13.     text-decoration: none;
  14. }
  15. a.p:active {
  16.     color: #0066FF;
  17.     text-decoration: none;
  18. }
  19. a.p:hover {
  20.     color: #0066FF;
  21.     text-decoration: underline;
  22. }
  23. a.ord:link {
  24.     color: #000000;
  25.     text-decoration: none;
  26. }
  27. a.ord:visited {
  28.     color: #000000;
  29.     text-decoration: none;
  30. }
  31. a.ord:active {
  32.     color: #000000;
  33.     text-decoration: none;
  34. }
  35. a.ord:hover {
  36.     color: #000000;
  37.     text-decoration: underline;
  38. }
  39. -->
  40. </head>
  41. <body bgcolor="#FFFFFF">
  42. <script language="JavaScript">
  43. function muestra(queCosa)
  44. {
  45.     alert(queCosa);
  46. }
  47. <div align="center"><strong><font color="#000000" size="2" face="Verdana, Arial, Helvetica, sans-serif">Paginaci&oacute;n
  48.   de Resultados de una consulta SQL (sobre MySQL)<br><br></font></strong> </div>
  49. <hr noshade style="color:CC6666;height:1px">
  50. <br>
Código PHP:
Ver original
  1. <?php
  2.         //inicializo el criterio y recibo cualquier cadena que se desee buscar
  3.         $criterio = "";
  4.         if ($_GET["criterio"]!=""){
  5.             $txt_criterio = $_GET["criterio"];
  6.             $criterio = " where titulo like '%" . $txt_criterio . "%' ";
  7.           }elseif($_GET["sprovincia"]!=""){
  8.             $txt_criterio = $_GET["sprovincia"];
  9.             $criterio = " where provincia='$txt_criterio'";
  10.           }
  11.  
  12.  
  13.     $sql="SELECT * FROM anuncios ".$criterio;
  14.     $res=mysql_query($sql,$link);
  15.     $numeroRegistros=mysql_num_rows($res);
  16.     if($numeroRegistros<=0)
  17.     {
  18.         echo "<div align='center'>";
  19.         echo "<font face='verdana' size='-2'>No se encontraron resultados</font>";
  20.         echo "</div>";
  21.     }else{
  22.         //////////elementos para el orden
  23.         if(!isset($orden))
  24.         {
  25.             $orden="id_anuncio";;
  26.         }
  27.         //////////fin elementos de orden
  28.  
  29.         //////////calculo de elementos necesarios para paginacion
  30.         //tamaño de la pagina
  31.         $tamPag=5;
  32.  
  33.         //pagina actual si no esta definida y limites
  34.         if(!isset($_GET["pagina"])){
  35.             $pagina=1;
  36.             $inicio=1;
  37.             $final=$tamPag;
  38.         }else{
  39.             $pagina = $_GET["pagina"];
  40.         }
  41.         //calculo del limite inferior
  42.         $limitInf=($pagina-1)*$tamPag;
  43.  
  44.         //calculo del numero de paginas
  45.         $numPags=ceil($numeroRegistros/$tamPag);
  46.         if(!isset($pagina))
  47.         {
  48.                $pagina=1;
  49.                $inicio=1;
  50.                $final=$tamPag;
  51.         }else{
  52.             $seccionActual=intval(($pagina-1)/$tamPag);
  53.             $inicio=($seccionActual*$tamPag)+1;
  54.  
  55.             if($pagina<$numPags)
  56.             {
  57.                $final=$inicio+$tamPag-1;
  58.             }else{
  59.                 $final=$numPags;
  60.             }
  61.                
  62.                 if ($final>$numPags){
  63.                      $final=$numPags;
  64.             }
  65.         }
  66.  
  67.         //////////fin de dicho calculo
  68.  
  69.         //////////creacion de la consulta con limites
  70.         $sql="SELECT * FROM anuncios ".$criterio." ORDER BY ".$orden.",id_anuncio ASC LIMIT ".$limitInf.",".$tamPag;
  71.         $res = mysql_query($sql,$link) or die("Error en: $busqueda: " . mysql_error());;
  72.  
  73.         //////////fin consulta con limites
  74.         echo "<div align='center'>";
  75.         echo "<font face='verdana' size='-2'>encontrados ".$numeroRegistros." resultados<br>";
  76.         echo "ordenados por <b>".$orden."</b>";
  77.                 if(isset($txt_criterio)){
  78.         echo "<br>Valor filtro: <b>".$txt_criterio."</b>";
  79.                 }
  80.         echo "</font></div>";
  81.         echo "<table align='center' width='80%' border='0' cellspacing='1' cellpadding='0'>";
  82.         echo "<tr><td colspan='3'><hr noshade></td></tr>";
  83.         echo "<th bgcolor='#CCCCCC'><a class='ord' href='".$_SERVER["PHP_SELF"]."?pagina=".$pagina."&orden=id_anuncio&criterio=".$txt_criterio."'>Titulo</a></th>";
  84.         echo "<th bgcolor='#CCCCCC'><a class='ord' href='".$_SERVER["PHP_SELF"]."?pagina=".$pagina."&orden=id_anuncio&criterio=".$txt_criterio."'>Foto</a></th>";
  85.         echo "<th bgcolor='#CCCCCC'><a class='ord' href='".$_SERVER["PHP_SELF"]."?pagina=".$pagina."&orden=precio&criterio=".$txt_criterio."'>Precio</a></th>";
  86.         echo "<th bgcolor='#CCCCCC'><a class='ord' href='".$_SERVER["PHP_SELF"]."?pagina=".$pagina."&orden=fecha&criterio=".$txt_criterio."'>Fecha</a></th>";      
  87.         while($registro=mysql_fetch_array($res))
  88.         {
  89. ?>
Código HTML:
Ver original
  1. <!-- tabla de resultados -->
  2.   <tr bgcolor="#CC6666" onMouseOver="this.style.backgroundColor='#FF9900';this.style.cursor='hand';" onMouseOut="this.style.backgroundColor='#CC6666'"o"];" onClick="javascript:muestra('<? echo "[".$registro["titulo"]."] ".$registro["titulo"]." - ".$registro["precio"]." - ".$registro["fecha"]; ?>');">
  3.     <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFCC"><b><?php echo $registro["titulo"]; ?></b></font></td>
  4.     <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFCC"><b><?[HIGHLIGHT="PHP"]
php echo "<img src='".$registro['foto1']."' WIDTH=105 HEIGHT=97></img>"; ?></b></font></td>
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFCC"><b><?php echo $registro["precio"]; ?></b></font></td>
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFCC"><b><?php echo $registro["fecha"]; ?></b></font></td>
</tr>
<!-- fin tabla resultados -->[/HIGHLIGHT]
Código PHP:
Ver original
  1. <?php
  2.         }//fin while
  3.         echo "</table>";
  4.     }//fin if
  5.     //////////a partir de aqui viene la paginacion
  6. ?>
Código HTML:
Ver original
  1. <br>
  2.     <table border="0" cellspacing="0" cellpadding="0" align="center">
  3.     <tr><td align="center" valign="top">
Código PHP:
Ver original
  1. <?php
  2.     if($pagina>1)
  3.     {
  4.         echo "<a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".($pagina-1)."&orden=".$orden."&criterio=".$txt_criterio."'>";
  5.         echo "<font face='verdana' size='-2'>anterior</font>";
  6.         echo "</a>&nbsp;";
  7.     }
  8.  
  9.     for($i=$inicio;$i<=$final;$i++)
  10.     {
  11.         if($i==$pagina)
  12.         {
  13.             echo "<font face='verdana' size='-2'><b>".$i."</b>&nbsp;</font>";
  14.         }else{
  15.             echo "<a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".$i."&orden=".$orden."&criterio=".$txt_criterio."'>";
  16.             echo "<font face='verdana' size='-2'>".$i."</font></a>&nbsp;";
  17.         }
  18.     }
  19.     if($pagina<$numPags)
  20.     {
  21.         echo "&nbsp;<a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".($pagina+1)."&orden=".$orden."&criterio=".$txt_criterio."'>";
  22.         echo "<font face='verdana' size='-2'>siguiente</font></a>";
  23.     }
  24.     //////////fin de la paginacion
  25. ?>
Código HTML:
Ver original
  1. </td></tr>
  2.     </table>
  3. <hr noshade style="color:CC6666;height:1px">
  4. <div align="center"><font face="verdana" size="-2"><a class="p" href="index.php">::Inicio::</a></font></div>
  5.  
  6. <form action="servicios.php" method="get">
  7. Criterio de búsqueda:
  8. <input type="text" name="criterio" size="22" maxlength="150">
  9.  
  10.                 <select style="width:60%" id="sprovincia" name="sprovincia">
  11.                             <option value="selec" selected="selected">-seleccione provincia-</option>
  12.                                     <option value="alava">&Aacute;lava</option>
  13.                                     <option value="albacete">Albacete</option>
  14.                                     <option value="alicante">Alicante</option>
  15.                                     <option value="almeria">Almer&iacute;a</option>
  16.                                     <option value="asturias">Asturias</option>
  17.                                     <option value="avila">&Aacute;vila</option>
  18.                                     <option value="badajoz">Badajoz</option>
  19.        
  20.                                     <option value="barcelona">Barcelona</option>
  21.                                     <option value="burgos">Burgos</option>
  22.                                     <option value="caceres">C&aacute;ceres</option>
  23.                                     <option value="cadiz">C&aacute;diz</option>
  24.                                     <option value="cantabria">Cantabria</option>
  25.                                     <option value="castellon">Castell&oacute;n</option>
  26.        
  27.                                     <option value="ciudad real">Ciudad Real</option>
  28.                                     <option value="cordoba">C&oacute;rdoba</option>
  29.                                    
  30.                                     <option value="cuenca">Cuenca</option>
  31.                                     <option value="girona">Girona</option>
  32.                                     <option value="granada">Granada</option>
  33.                                     <option value="guadalajara">Guadalajara</option>
  34.        
  35.                                     <option value="guipuzcoa">Guip&uacute;zcoa</option>
  36.                                     <option value="huelva">Huelva</option>
  37.                                     <option value="huesca">Huesca</option>
  38.                                     <option value="islas baleares">Islas Baleares</option>
  39.                                     <option value="jaen">Ja&eacute;n</option>
  40.                                     <option value="la coru&ntilde;a">La Coru&ntilde;a</option>
  41.        
  42.                                     <option value="la rioja">La Rioja</option>
  43.                                     <option value="las palmas">Las Palmas</option>
  44.                                     <option value="leon">Le&oacute;n</option>
  45.                                     <option value="lerida">L&eacute;rida</option>
  46.                                     <option value="lugo">Lugo</option>
  47.                                     <option value="madrid">Madrid</option>
  48.        
  49.                                     <option value="malaga">M&aacute;laga</option>
  50.                                     <option value="murcia">Murcia</option>
  51.                                     <option value="navarra">Navarra</option>
  52.                                     <option value="orense">Orense</option>
  53.                                     <option value="palencia">Palencia</option>
  54.                                        
  55.                                     <option value="zaragoza">Zaragoza</option>
  56.                     </select>
  57.  
  58. <input type="submit" value="Buscar">
  59. </form>
  60.  
  61. </body>
  62. </html>
  #2 (permalink)  
Antiguo 19/01/2012, 04:33
Avatar de autonotel  
Fecha de Ingreso: junio-2003
Ubicación: Vigo
Mensajes: 480
Antigüedad: 20 años, 10 meses
Puntos: 13
Respuesta: se me pierde el valor de la variable

if($pagina<=$numPags){

o bien
$numpags = $numpags +1;
if($pagina<=$numPags){
  #3 (permalink)  
Antiguo 20/01/2012, 02:34
Avatar de pampa_  
Fecha de Ingreso: mayo-2006
Mensajes: 334
Antigüedad: 17 años, 11 meses
Puntos: 1
Respuesta: se me pierde el valor de la variable

donde pongo esas lineas?? y otra cosa, como es posible que en el campo input ponga lo que ponga va perfecto pero si utilizo el desplegable el valor que tiene ahi lo pierde?

gracias
  #4 (permalink)  
Antiguo 20/01/2012, 05:19
Avatar de autonotel  
Fecha de Ingreso: junio-2003
Ubicación: Vigo
Mensajes: 480
Antigüedad: 20 años, 10 meses
Puntos: 13
Respuesta: se me pierde el valor de la variable

Perdona creo que me había equivocado...
La variable que se te pierde es $txt_criterio ?
Me imagino que el campo que añadiste es provincia?

Yo creo que deberías revisar esto:

$criterio = "";
if ($_GET["criterio"]!=""){
$txt_criterio = $_GET["criterio"];
$criterio = " where titulo like '%" . $txt_criterio . "%' ";
}elseif($_GET["sprovincia"]!=""){
$txt_criterio = $_GET["sprovincia"];
$criterio = " where provincia='$txt_criterio'";
}

Porque no veo que aquí
echo "&nbsp;<a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".($pagina+1)."&orden=".$orden."&criteri o=".$txt_criterio."'>";
echo "<font face='verdana' size='-2'>siguiente</font></a>";

le envíes la variable sprovincia,

quizá yo lo pondría así:
$criterio = $_GET["criterio"];
$txt_criterio = " where titulo like '%" . $txt_criterio . "%' ";
if ( $criterio == ""){
$criterio = $_GET["sprovincia"];
$txt_criterio = " where provincia='$txt_criterio'";
}

y envíale la variable sprovincia.

echo "&nbsp;<a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".($pagina+1)."&orden=".$orden."&criteri o=".$txt_criterio."&sprovincia=".$_GET['sprovincia']."'>";
echo "<font face='verdana' size='-2'>siguiente</font></a>";

A ver si es eso
  #5 (permalink)  
Antiguo 20/01/2012, 17:44
Avatar de pampa_  
Fecha de Ingreso: mayo-2006
Mensajes: 334
Antigüedad: 17 años, 11 meses
Puntos: 1
Respuesta: se me pierde el valor de la variable

te entiendo, pero lo que yo pretendo es que tengo un campo input que es "criterio" y otro campo que es el select de las diferentes provincias que se llama "sprovincia".

entonces lo que quiero es hacer una busqueda o por criterio o por busqueda... o una cosa o la otra... entonces si no escribo nada en el input en "txt_criterio" se me deberia de quedar el resultado de "sprovincia"...

Mira te dejo el link donde lo podras ver que hace y me dices que opinas....
http://www.levanteautomocion.com/servicios.php
  #6 (permalink)  
Antiguo 21/01/2012, 03:45
Avatar de autonotel  
Fecha de Ingreso: junio-2003
Ubicación: Vigo
Mensajes: 480
Antigüedad: 20 años, 10 meses
Puntos: 13
Respuesta: se me pierde el valor de la variable

Claro,
veo que yo lo había entendido bien, prueba con lo que te pongo.

básicamente me faltaba que pusieses en el enlace "siguiente" la variable sprovincia porque si no se pierde. y con respecto a como recogerlas con $_GET, yo lo pondría así, pero tu forma también podría funcionar. Pero envía la variable sprovincia desde el enlace por get porque si no siempre se te perdrá.
  #7 (permalink)  
Antiguo 23/01/2012, 09:48
Avatar de pampa_  
Fecha de Ingreso: mayo-2006
Mensajes: 334
Antigüedad: 17 años, 11 meses
Puntos: 1
Respuesta: se me pierde el valor de la variable

eso no funciona, ademas yo al ahcer esto, ya me guardo el valor de la variable y despues lo paso por $criterio
Código PHP:
Ver original
  1. $criterio = "";
  2.         if ($_GET["criterio"]!=""){
  3.             $txt_criterio = $_GET["criterio"];
  4.             $criterio = " where titulo like '%" . $txt_criterio . "%' ";
  5.           }elseif($_GET["sprovincia"]!=""){
  6.             $txt_criterio = $_GET["sprovincia"];
  7.             $criterio = " where provincia='$txt_criterio'";
  8.           }
Código HTML:
Ver original
  1. echo "&nbsp;<a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".($pagina+1)."&orden=".$orden."&criterio=".$txt_criterio."'>";
  2.         echo "<font face='verdana' size='-2'>siguiente</font></a>";
  #8 (permalink)  
Antiguo 23/01/2012, 10:21
Avatar de autonotel  
Fecha de Ingreso: junio-2003
Ubicación: Vigo
Mensajes: 480
Antigüedad: 20 años, 10 meses
Puntos: 13
Respuesta: se me pierde el valor de la variable

elseif($_GET["sprovincia"]!="")

Si esperas obtener la variable "sprovincia" después de pulsar el enlace "siguiente" debes mandársela

echo "&nbsp;<a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".($pagina+1)."&orden=".$orden."&criteri o=".$txt_criterio."&sprovincia=".$_GET['sprovincia']."'>";
echo "<font face='verdana' size='-2'>siguiente</font></a>";

Si $_GET['provincia'] está vacío ya te recoge criterio pero si no, te debe recoger la variable sprovincia cuyo $_GET[] ya lo habrás obtenido de la consulta que proviene de tu formulario.
  #9 (permalink)  
Antiguo 23/01/2012, 22:22
Avatar de pampa_  
Fecha de Ingreso: mayo-2006
Mensajes: 334
Antigüedad: 17 años, 11 meses
Puntos: 1
Respuesta: se me pierde el valor de la variable

pero si da igual, yo ya sea rellenando el campo del $_GET["sprovincia"]o de $_GET["criterio"]lo voy a guardar en $txt_criterio, esto todo es una prueba que estoy haciendo para ver la posibilidad de utilizar otra forma de buscar en la web.

entonces este $txt_criterio se pone en la consulta la cual luego se me guarda como $criterio.
Se supone que en este punto yo ya tengo la consulta formulada y paso mis variables de busqueda....
  #10 (permalink)  
Antiguo 24/01/2012, 07:36
Avatar de autonotel  
Fecha de Ingreso: junio-2003
Ubicación: Vigo
Mensajes: 480
Antigüedad: 20 años, 10 meses
Puntos: 13
Respuesta: se me pierde el valor de la variable

Pero cuando le das a siguiente, cuando recibe las variables que se pasan por URL le pides que te recoja la variable sprovincia con $_GET['sprovincia'].

El caso es que una vez declarado y recogido $_GET['sprovincia'], te sobraría el elseif después de darle a siguiente, pero como anulas $criterio al decirle $criterio = '', ahí hay algo raro, por eso mi propuesta primera. Puede que no te haya funcionado porque no debes ponerlo al pié de la letra, no estaba probado, pero los tiros van por ahí seguro.
  #11 (permalink)  
Antiguo 25/01/2012, 11:11
Avatar de pampa_  
Fecha de Ingreso: mayo-2006
Mensajes: 334
Antigüedad: 17 años, 11 meses
Puntos: 1
Respuesta: se me pierde el valor de la variable

bueno esto es para mear y no echar gota!!!

Estoy haciendo mis pruebas para ver si logro que vaya esta tonteria, el tema es que tal y como lo tengo posteado solo tenia un error y era en la web a la que tenia que volver lo he puesto bien y ahora va perfecto....

Otra de mis pruebas porque esta misma pagina la tenia repetida la he dejado tambien bien en teoria, pero bueno esta sigue sin ir es exactamente el mismo codigo...
lo dicho para mear y no echar gota

Etiquetas: html, input, php, pierde, 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:21.