Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Cambiar contenido de una variable mediante if

Estas en el tema de Cambiar contenido de una variable mediante if en el foro de PHP en Foros del Web. Para que al abrir una página empieze desde donde yo quiero le asignado a un select un valor predefinido: <?php include("conexion.php"); $selectapar=$_POST['selectapar']; $selectapar='Todos los artículos'; ...

  #1 (permalink)  
Antiguo 08/12/2013, 09:53
Avatar de angel_xx_1990  
Fecha de Ingreso: junio-2013
Ubicación: Guadalajara
Mensajes: 236
Antigüedad: 10 años, 8 meses
Puntos: 0
Exclamación Cambiar contenido de una variable mediante if

Para que al abrir una página empieze desde donde yo quiero le asignado a un select un valor predefinido:

<?php
include("conexion.php");
$selectapar=$_POST['selectapar'];
$selectapar='Todos los artículos';

if ($selectapar=="Todos los artículos") {

muestra esta condicion if nada mas abrir la pagina (es lo que quiero)

}

(Sin embargo hay mas if)

if ($selectapar=="Hombre - Ropa"){

Aqui no me muestra nada ya que el valor de la variable $selectapar sigue siendo "todos los artículos", Pues bien quiero que al seleccionar Hombre - Ropa, la variable $selectapar quede guardado el valor "Hombre - Ropa"...e intentado poniendo ESTO:
}


if ($selectapar=="Hombre - Ropa"){

$selectapar = 'Hombre - Ropa';

pero me temo que no lo guarda.....

}




¿Cómo se haría esto? Gracias amigos!!
  #2 (permalink)  
Antiguo 08/12/2013, 10:01
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 7 meses
Puntos: 83
Respuesta: Cambiar contenido de una variable mediante if

Es un chiste?? :)) Si $selectapar vale "Hombre - Ropa" para que quieres machacarle otra vez lo mismo?

Código PHP:
Ver original
  1. if($selectapar == "Hombre - Ropa") {
  2.     $selectapar = "Hombre - Ropa";//estas asignando el mismo valor
  3. }


"...pero me temo que no lo guarda..."
Por que consideras que no lo guarda?

Saludos
vosk
  #3 (permalink)  
Antiguo 08/12/2013, 10:05
Avatar de angel_xx_1990  
Fecha de Ingreso: junio-2013
Ubicación: Guadalajara
Mensajes: 236
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Cambiar contenido de una variable mediante if

pues tiene en cuenta el valor $selectapar='Todos los artículos'; y no el que marcas con el select ya que le digo que imprima el valor del select e impirme Todos los articulos.... :(
  #4 (permalink)  
Antiguo 08/12/2013, 10:22
Avatar de herzbazi  
Fecha de Ingreso: febrero-2012
Mensajes: 612
Antigüedad: 12 años
Puntos: 36
Respuesta: Cambiar contenido de una variable mediante if

Cita:
Iniciado por angel_xx_1990 Ver Mensaje
pues tiene en cuenta el valor $selectapar='Todos los artículos'; y no el que marcas con el select ya que le digo que imprima el valor del select e impirme Todos los articulos.... :(
exactamnte que es lo que estas haciendo,,

el valor de post es comparado con alguna base de datos ,,,

esplica mas lo que buscar hacer asi nos ayudas a ayudarte
__________________
Enseña todo lo que sepas...
Aprende todo lo que puedas..
  #5 (permalink)  
Antiguo 08/12/2013, 10:26
Avatar de angel_xx_1990  
Fecha de Ingreso: junio-2013
Ubicación: Guadalajara
Mensajes: 236
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Cambiar contenido de una variable mediante if

si elimino la sentencia de $selectapar='Todos los artículos';

<?php
include("conexion.php");
$selectapar=$_POST['selectapar'];

es cuando los select funcionan bien.. pero no empieza el select con el valor que quiero y no muestra bien la primera consulta..y al cambiar de página (mediante la paginacion) se olvida del valor del select:


es decir en el select selecciono el valor mujer, por ejemplo, y me muestra la consulta de la base de datos en las que una fila es igual a mujer...(perfecto) pero resulta que mediante una paginacion le indico que muestre 15 resultados por página...de tal manera que cuando paso a la pagina 2, automaticamente sale del select mujer y muestra todo, en la pagina 2 pero todo.....
  #6 (permalink)  
Antiguo 08/12/2013, 10:37
Avatar de angel_xx_1990  
Fecha de Ingreso: junio-2013
Ubicación: Guadalajara
Mensajes: 236
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Cambiar contenido de una variable mediante if

Se podría mantener el valor del select guardado hasta que se seleccione otro diferente, y este quede guardado hasta que se seleccione otro diferente...y asi sucesivamente??

Tal vez sea esa la solucion
  #7 (permalink)  
Antiguo 08/12/2013, 11:01
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 7 meses
Puntos: 83
Respuesta: Cambiar contenido de una variable mediante if

"...Se podría mantener el valor del select guardado..."

Si, cuando escribes el select marcas como seleccionada la opcion que se corresponda con el $_POST anterior:

Código PHP:
Ver original
  1. <select name="selectapar">
  2. <?php
  3. $opciones = array("Todos los artículos", "Hombre - Ropa");
  4. foreach($opciones as $opcion) {
  5.     echo "<option value=\"".$opcion."\"";
  6.     if(!strcmp($selectapar, $opcion)) {
  7.         echo " selected";
  8.     }
  9.     echo ">".."</option>";
  10. }
  11. ?>
  12. </select>

Saludos
vosk
  #8 (permalink)  
Antiguo 08/12/2013, 11:04
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 7 meses
Puntos: 83
Respuesta: Cambiar contenido de una variable mediante if

Por cierto, eso acceder directamente a un elemento de un array obtenido de datos del usuario no es seguro; antes de acceder a $_POST['loquesea'] asegurate que existe:

Código PHP:
Ver original
  1. $selectapar = (isset($_POST['selectapar']))? $_POST['selectapar'] : 'Valor por defecto';

Saludos
vosk
  #9 (permalink)  
Antiguo 08/12/2013, 11:15
Avatar de angel_xx_1990  
Fecha de Ingreso: junio-2013
Ubicación: Guadalajara
Mensajes: 236
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Cambiar contenido de una variable mediante if

de primeras no e entendido nada...lo siento e leido algo acerca del foreach pero en verdad no hay array simplemente hay opciones declaradas, si selectapar es igual a esas ocdiones realiza un busqueda en la Base de Datos en la cual se compara un elemento, y si se cumple lo muestra. (sencillo) ahora bien para paginar tengo lo siguiente:


<?php
if ($pagina>1)
echo "<a href='moda.php?num=". ($pagina-1) ."'>Anterior</a> ";

for ($cont=1;$cont<=$paginas;$cont++)
{
if ($cont==$pagina)
echo $cont ." ";
else
echo "<a href='moda.php?num=". $cont ."'>$cont</a> ";

}
if ($pagina<$paginas)
echo "<a href='moda.php?num=". ($pagina+1) ."'>Siguiente</a> ";
?>



de tal manera que "num" lo aumenta o disminuye para cambiar de página pero al hacer esto deja de tener en cuenta el valor del select y entonces no me muestra el "filtro" digamoslo así que se supone que tiene que realizar....



  #10 (permalink)  
Antiguo 08/12/2013, 11:22
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 7 meses
Puntos: 83
Respuesta: Cambiar contenido de una variable mediante if

Y el select como lo escribes?
  #11 (permalink)  
Antiguo 08/12/2013, 11:25
Avatar de angel_xx_1990  
Fecha de Ingreso: junio-2013
Ubicación: Guadalajara
Mensajes: 236
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Cambiar contenido de una variable mediante if

include("conexion.php");
$selectapar=$_POST['selectapar'];

if ($selectapar=="Todos los artículos")
{
$rst_form=mysql_query("SELECT * FROM xxxx WHERE xxxx = 'Moda'");
$num_rows=mysql_num_rows($rst_form);

if ($num_rows==0)

{

echo "No hay artículos disponibles para mostrar";
exit();

}

$registros = 15;
$pagina=$_GET["num"];
if (is_numeric($pagina)){
$inicio= (($pagina-1)*$registros);
}else{
$inicio= 0;}

$rst_form=mysql_query("SELECT * FROM xxxx WHERE xxxx = 'Moda' LIMIT $inicio,$registros;");

$paginas = ceil ($num_rows/$registros);


} if ($selectapar=="Hombre - Ropa")
{

$rst_form=mysql_query("SELECT * FROM xxxx WHERE xxxx='Hombre-Ropa'");
$num_rows=mysql_num_rows($rst_form);

if ($num_rows==0)

{

echo "No hay artículos disponibles para mostrar";
exit();
}

$registros = 15;
$pagina=$_GET["num"];
if (is_numeric($pagina)){
$inicio= (($pagina-1)*$registros);
}else{
$inicio= 0;}

$rst_form=mysql_query("SELECT * FROM xxxx WHERE xxxx='Hombre-Ropa' LIMIT $inicio,$registros;");

$paginas = ceil ($num_rows/$registros);
  #12 (permalink)  
Antiguo 08/12/2013, 11:27
Avatar de angel_xx_1990  
Fecha de Ingreso: junio-2013
Ubicación: Guadalajara
Mensajes: 236
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Cambiar contenido de una variable mediante if

y asi con todos....
  #13 (permalink)  
Antiguo 08/12/2013, 11:46
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 7 meses
Puntos: 83
Respuesta: Cambiar contenido de una variable mediante if

Perdon, me referia al select html donde salen las opciones (no al de la consulta); será algo asi

Código HTML:
Ver original
  1. <select name="selectapar">
  2.     <option value="Todos los artículos">Todos los artículos</option>
  3.     <option value="Hombre - Ropa">Hombre - Ropa</option>
  4.     <option value="Mujer - Ropa">Mujer - Ropa</option>

Si quieres que en la siguiente recarga del documento te marque lo que seleccionaste antes de linkar (desde el mapa de paginas), tienes que modificar este select de la forma que te comenté mas arriba.

Ademas, en los enlaces del mapa de paginas debes incluir una referencia al valor seleccionado actual. Ten en cuenta una cosa: la navegacion a traves de los enlaces en el mapa de paginas ejecuta una consulta GET, pero en el php intentas recuperar el selectapar desde una consulta POST; normalmente el submit de un form genera un POST, y el click en un link genera un GET. Sabiendo eso y sabiendo lo que te comenté tambien mas arriba sobre el control de errores, sabras que el usuario está navegando desde los links porque $_POST estará vacío, con lo que solo te quedará la opcion de recuperar el selectapar desde la referencia que le pongas en la query del link; cuando pagines el mapa de paginas tienes que obtener algo así:

Código HTML:
Ver original
  1. <a href="pagina.php?selectapar=todo">Pagina 1</a>
  2. <a href="pagina.php?selectapar=todo">Pagina 2</a>
  3. etc...

Esto implica dos escenarios: cuando aun no tienes el 'filtro', tendras el select en un form ok? Luego envias el form y en el php obtienes el filtro con $_POST['seletapar']. Haces la consulta en la base de datos, muestras x resultados y escribes el mapa de paginas (los enlaces a las paginas siguientes); estos enlaces contendran una referencia al selectapar. Y ahora el segundo escenario: el usuario ya seleccionó un filtro, lo envió y recibió una pagina de resultados con un mapa de paginas, luego pincha sobre el link de la pagina siguiente y en el php recibes el selectapar desde $_GET['selectapar']. A partir de aquí es todo lo mismo, haces la consulta para la segunda pagina de resultados, muestras los resultados y muestras el mapa de paginas.

Saludos
vosk
  #14 (permalink)  
Antiguo 08/12/2013, 12:11
Avatar de angel_xx_1990  
Fecha de Ingreso: junio-2013
Ubicación: Guadalajara
Mensajes: 236
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Cambiar contenido de una variable mediante if

Gracias aunque nose ni por donde empezar....me estoy planteando el hecho de que el select envie a otra pagina php y crear un pagina php para cada opcion de select...
  #15 (permalink)  
Antiguo 08/12/2013, 12:21
Avatar de angel_xx_1990  
Fecha de Ingreso: junio-2013
Ubicación: Guadalajara
Mensajes: 236
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Cambiar contenido de una variable mediante if

este es mi select:


<label for="selectapar">:&nbsp;&nbsp;</label>
<select name="selectapar" autofocus id="selectapar" onchange="this.form.submit()">
<option value="selecc"selected disabled>Seleccionar...</option>
<option value="Todos los artículos">Todo</option>
<option value="Hombre - Ropa">Hombre-Ropa</option>
<option value="Hombre - Complementos">Hombre-Complementos</option>
<option value="Hombre - Calzado">Hombre-Calzado</option>
<option value="Mujer - Ropa">Mujer-Ropa</option>
<option value="Mujer - Complementos">Mujer-Complementos</option>
<option value="Mujer - Calzado">Mujer-Calzado</option>
<option value="Niñ@s">Niñ@s</option>
</select>
  #16 (permalink)  
Antiguo 08/12/2013, 12:34
Avatar de angel_xx_1990  
Fecha de Ingreso: junio-2013
Ubicación: Guadalajara
Mensajes: 236
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Cambiar contenido de una variable mediante if

y...efectivamente al pasar de pagina me recarga y me muestra la opción que esta marcada por defecto en el select, en mi caso: Seleccionar...

Es por eso que cuando paso página me muestra lo que tiene seleccionar es decir nada...


Ahora e captado el problema a la perfeccion, pero me surge otro y es que no se como en esa nueva página tener el select marcado por el usuario y no el que venia por defecto...


me decis que debo cambiar mi select, al intentarlo poner como el de arriba me da un error de sintaxis en la linea 9...
  #17 (permalink)  
Antiguo 08/12/2013, 13:22
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 7 meses
Puntos: 83
Respuesta: Cambiar contenido de una variable mediante if

Ok, lo escribí directamente aca y me olvidé una cosa, esta sería la linea 9:

Código PHP:
Ver original
  1. echo ">".$opcion."</option>";

Junto conesto recuerda que debes implementar la recogida del dato para los dos escenarios:

Código PHP:
Ver original
  1. //defines un filtro por defecto
  2. $default_selectapar = 'Todos los artículos';
  3.  
  4. //primero verificas si ejecuta el php desde una POST
  5. if(($selectapar = (isset($_POST['selectapar']))? $_POST['selectapar'] : NULL)) === NULL) {
  6.     //si el anterior resultado fue nulo pruebas con el GET
  7.     if(($selectapar = (isset($_GET['selectapar']))? $_GET['selectapar'] : NULL)) === NULL) {
  8.         //y si el anterior vuelve a ser nulo asignas el que hay por defecto
  9.         $selectapar = $default_selectapar;
  10.     }
  11. }

A partir de aquí ya tienes un $selectapar valido. Pero para que funcione tendra que implementar tambien el select html de la forma que te comenté y ademas tendras que paginar el mapa de paginas de resultados con la referencia de este $selectapar, puedes añadirlo despues del campo 'num'; en el caso del link a pagina anterior sería así:

Código PHP:
Ver original
  1. echo "<a href='moda.php?num=". ($pagina-1) ."&selectapar=".$selectapar."'>Anterior</a> ";

Esto implica aun otra cosa, el usuario verá texto escrito en la barra de navegacion; tendrias que implementar una lista de opciones donde se relacionan los textos a mostrar como opcion o filtro y los valores que se van a enviar; no es imprescindible pero puedes tenerlo en cuenta.

Saludos
vosk
  #18 (permalink)  
Antiguo 08/12/2013, 13:30
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 7 meses
Puntos: 83
Respuesta: Cambiar contenido de una variable mediante if

Te pongo la otra forma de condicionales para recoger el selectapar, tal vez ese codigo que colgué sea poco amigable:

Código PHP:
Ver original
  1. //defines un filtro por defecto
  2. $default_selectapar = 'Todos los artículos';
  3.  
  4. //primero verificas si ejecuta el php desde una POST
  5. if(isset($_POST['selectapar'])) {
  6.     //obtienes el filtro por POST
  7.     $selectapar = $_POST['selectapar'];
  8. }
  9. else {
  10.     //si el resultado anterior fue nulo significa que o no selecciono
  11.     //nada del select o que accedio por GET, entonces pruebas por GET
  12.     if(isset($_GET['selectapar'])) {
  13.         //obtienes el filtro por GET
  14.         $selectapar = $_GET['selectapar'];
  15.     }
  16.     else {
  17.         //si el resultado anterior sigue siendo nulo significa que
  18.         //el usuario no navegaba por los links del mapa de paginas ni seleccionó
  19.         //ningun elemento del select de filtros
  20.         //entonces asignas lo que hay por defecto
  21.        $selectapar = $default_selectapar;
  22.     }
  23. }

Saludos
vosk
  #19 (permalink)  
Antiguo 08/12/2013, 13:43
Avatar de angel_xx_1990  
Fecha de Ingreso: junio-2013
Ubicación: Guadalajara
Mensajes: 236
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Cambiar contenido de una variable mediante if

/defines un filtro por defecto
$default_selectapar = 'Todos los artículos';

//primero verificas si ejecuta el php desde una POST
if(($selectapar = (isset($_POST['selectapar']))? $_POST['selectapar'] : NULL)) === NULL) {
//si el anterior resultado fue nulo pruebas con el GET
if(($selectapar = (isset($_GET['selectapar']))? $_GET['selectapar'] : NULL)) === NULL) {
//y si el anterior vuelve a ser nulo asignas el que hay por defecto
$selectapar = $default_selectapar;
}
}


Me da error en esas dos lineas que te marcado en rojo :(
  #20 (permalink)  
Antiguo 08/12/2013, 14:01
Avatar de angel_xx_1990  
Fecha de Ingreso: junio-2013
Ubicación: Guadalajara
Mensajes: 236
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Cambiar contenido de una variable mediante if

Pues bien, realizado todo lo que me as dicho, al cambiar de pagina en el select nuevamente aparece en esta ocasión la primera opción : todos los articulos....y da error..


no se consigue que guarde el valor del select...
  #21 (permalink)  
Antiguo 08/12/2013, 14:37
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 7 meses
Puntos: 83
Respuesta: Cambiar contenido de una variable mediante if

Tienes que poner un poco de tu parte, cuando trabajas con php tienes que poder corregir errores de sintaxi; una cosa: no lo puse mal expresamente, se me colaron un par de parentesis pero que deberias haber podido corregirlo sin problemas.

Te cuelgo un esqueleto basico para que veas lo que hay y lo que hace, asi podras adaptarlo a tu codigo (llamalo moda.php):

Código PHP:
Ver original
  1. <?php
  2. //lista de filtros
  3. $opciones = array(
  4.         "Todos los artículos",
  5.         "Hombre - Ropa",
  6.         "Hombre - Complementos",
  7.         "Hombre - Calzado",
  8.         "Mujer - Ropa",
  9.         "Mujer - Complementos",
  10.         "Mujer - Calzado",
  11.         "Niñ@s"
  12.         );
  13.  
  14. //filtro por defecto
  15. $default_selectapar = $opciones[0];
  16.  
  17. //primero verificas si ejecuta el php desde una POST
  18. if(($selectapar = (isset($_POST['selectapar']))? $_POST['selectapar'] : NULL) === NULL) {
  19.     //si el anterior resultado fue nulo pruebas con el GET
  20.     if(($selectapar = (isset($_GET['selectapar']))? $_GET['selectapar'] : NULL) === NULL) {
  21.         //y si el anterior vuelve a ser nulo asignas el que hay por defecto
  22.         $selectapar = $default_selectapar;
  23.     }
  24. }
  25. ?>
  26. <html>
  27.     <head></head>
  28.     <body>
  29.         <form>
  30.             <select name="selectapar" autofocus id="selectapar" onchange="this.form.submit()">
  31.             <option value="selecc"selected disabled>Seleccionar...</option>
  32.             <?php
  33.             foreach($opciones as $opcion) {
  34.                 echo "<option value=\"".$opcion."\"";
  35.                 if(!strcmp($selectapar, $opcion)) {
  36.                     echo " selected";
  37.                 }
  38.                 echo ">".$opcion."</option>";
  39.             }
  40.             ?>
  41.             </select>
  42.         </form>
  43.        
  44.         <?php
  45.         echo "<a href='moda.php?num=".($pagina-1)."&selectapar=".$selectapar."'>Anterior</a> ";
  46.         echo "<a href='moda.php?num=". ($pagina+1) ."&selectapar=".$selectapar."'>Siguiente</a> ";
  47.         ?>
  48.     </body>
  49. </html>

Comprueba que por defecto te da el filtro 'Todos', y tanto si cambias el filtro como si navegas por el mapa de paginas siempre recuerda la opcion.

Saludos
vosk
  #22 (permalink)  
Antiguo 08/12/2013, 14:46
Avatar de angel_xx_1990  
Fecha de Ingreso: junio-2013
Ubicación: Guadalajara
Mensajes: 236
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Cambiar contenido de una variable mediante if

Voy a ello y te digo ahora...gracias por ayudarme !!
  #23 (permalink)  
Antiguo 08/12/2013, 14:59
Avatar de angel_xx_1990  
Fecha de Ingreso: junio-2013
Ubicación: Guadalajara
Mensajes: 236
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Cambiar contenido de una variable mediante if

Bien, ahora si guarda la opción y al pasar de página en el select y en la barra de menú sale lo que seleccioné en el select,(perfecto)

al seleccionar primeramente una opcion del select muestra correctamente los 15 articulos por pagina que le tengo establecido, pero al pasar página (aunque guarda el select) da error como si no estuviera teniendo en cuenta al select para nada.....

que raro
  #24 (permalink)  
Antiguo 08/12/2013, 15:06
Avatar de angel_xx_1990  
Fecha de Ingreso: junio-2013
Ubicación: Guadalajara
Mensajes: 236
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Cambiar contenido de una variable mediante if

Por decirlo de otra manera es como si no se ejecutara, es decir nada mas entrar sale marcada la primera opción es decir: Todos los artículos, en el select pero no los muestra....para que los muestre tengo que cambiar a otra opción primero y luego volver a marcar Todos los artículos

es entonces cuando si los muestra...y al cambiar de página sucede lo mismo, ya te digo es como si estuviera ahí pero no se ejecutase...
  #25 (permalink)  
Antiguo 08/12/2013, 16:58
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 7 meses
Puntos: 83
Respuesta: Cambiar contenido de una variable mediante if

Puedes quitar el filtro por defecto, asi cuando creas el select si no recoges selectapar ni por GET ni por POST te dejará el select en la primera opcion 'Seleccionar...'

Si cambias de pagina desde el mapa de paginas asegurate que el enlace contenga la referencia del selectapar que se esté usando en ese momento. En el esqueleto que colgué arriba solo puse los enlaces de atras y adelante, pero tienes que poner la referencia en cualquier enlace de navegacion con el que quieras conservar el filtro.

Saludos
vosk
  #26 (permalink)  
Antiguo 08/12/2013, 17:28
Avatar de angel_xx_1990  
Fecha de Ingreso: junio-2013
Ubicación: Guadalajara
Mensajes: 236
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Cambiar contenido de una variable mediante if

No, si el problema no es que salga marcado en el select Todos los articulos, es que no los muestra, para que los muestre debes seleccionar otra opción, por ejemplo niños y luego volver a seleccionar todos los articulos, es aqui cuando si te aparece pero de primer momento no te aparece, y si cambias de pagina ocurre lo mismo, es decir estas en la pagina 1 de todos los artículos, al pulsar que pase a la siguiente página arriba en la barra de direcciones si aparece num=2 pero no muestra nada, para que lo muestre debes hacer lo mismo, cambias de opcion a niños por ejemplo y luego cambias a todos los articulos otra vez, entonces te aparece la pagina 2 de todos los artículos.....es algo raro
  #27 (permalink)  
Antiguo 08/12/2013, 17:41
Avatar de angel_xx_1990  
Fecha de Ingreso: junio-2013
Ubicación: Guadalajara
Mensajes: 236
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Cambiar contenido de una variable mediante if

Por lo que se deduce que al iniciar la página el select o no tiene ningun valor o no lo aplica, (e igualmente al cambiar de paginas)ya que he hecho el experimento de darle antes un valor fijo es decir e tecleado lo siguiente:

$selectapar = 'Todos los artículos';

en vez de que lo obtenga y desde que inicio la pagina sale bien el listado de todos los articulos y si avanzo en las paginas pasan correctamente de la 1 a la 2, 3, 4..etc.

pero si no lo defino me ocurre lo que te comentado arriba...
  #28 (permalink)  
Antiguo 08/12/2013, 22:56
Avatar de herzbazi  
Fecha de Ingreso: febrero-2012
Mensajes: 612
Antigüedad: 12 años
Puntos: 36
Respuesta: Cambiar contenido de una variable mediante if

Cita:
Iniciado por angel_xx_1990 Ver Mensaje
Por lo que se deduce que al iniciar la página el select o no tiene ningun valor o no lo aplica, (e igualmente al cambiar de paginas)ya que he hecho el experimento de darle antes un valor fijo es decir e tecleado lo siguiente:

$selectapar = 'Todos los artículos';

en vez de que lo obtenga y desde que inicio la pagina sale bien el listado de todos los articulos y si avanzo en las paginas pasan correctamente de la 1 a la 2, 3, 4..etc.

pero si no lo defino me ocurre lo que te comentado arriba...
mira
primero que nada yo tendria los select definidos dentro de la base de datos digamso algo asi

en mi base de datos una tabla llamada select1 (es un ejemplo)
con los campos id, nombredeloption

luego haria esto

Código PHP:
Ver original
  1. Seleccione una xxx <select name="xxxx" >
  2.                 <?php
  3.                     $sql=mysql_query('select * from select1');
  4.                     while($sql2=mysql_fetch_array($sql)){
  5.                         $select[]=$sql2;
  6.                     }
  7.                     foreach ($select as $s) {
  8.                         ?>
  9.                 <option value="<?php echo $c['campo de mi tabla']?>"><?php echo $c['campo de mi tabla']?></option>
  10.                         <?php
  11.                     }
  12.                 ?>
  13.                 </select>
  14.                
  15.                 <input type="hidden" value="ok" name="oculto" />
  16.                 <input type="submit" value="buscar" />
  17.                 </form>


luego haria mi consulta algo algo asi


Código PHP:
Ver original
  1. <?php
  2.                           if($_POST['xxxx']!="0")
  3.                           {
  4.                             $sql=mysql_query(" select * from mi tabla where xxxx='".$_POST['xxxx']."'");  
  5.                           } else{
  6.                           $sql=mysql_query("select * from xxxx");
  7.                           }
  8.                           $xxxx = array();
  9.                           while($reg=mysql_fetch_array($xxxx )){
  10.                             $xxxxx[]=$reg;
  11.                           }
  12.                         if(count($xxxxx)==0)
  13.                           {
  14.                             echo "La busqueda no a arrojado resultados";
  15.                           }
  16.                  else
  17.                     {
  18.          ?>
  19.             <ul class="pagination3">
  20.         <?php
  21.         foreach ($mivariable as $p) {
  22.         ?>
  23.           <li>
  24.               <div class="contenedor de los elementos de lista">
  25.                 aqui va todo tu html
  26.                 </div>
  27.         </li>
  28.         <?php
  29.         }
  30.         ?>
  31.           </ul>
  32.         <?php
  33.       }
  34.               ?>

agregaria la paginacion de javascript asi


Código Javascript:
Ver original
  1. <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
  2. <script type="text/javascript" src="http://www.jquery4u.com/demos/jquery-quick-pagination/js/jquery.quick.pagination.min.js"></script>
  3. <link rel="stylesheet" type="text/css" href="css/styles.css">
  4. <link rel="stylesheet" type="text/css" href="css/style.css" />
  5. <script type="text/javascript">
  6. $(document).ready(function() {
  7.   $("ul.pagination1").quickPagination();
  8.   $("ul.pagination2").quickPagination({pagerLocation:"both"});
  9.   $("ul.pagination3").quickPagination({pagerLocation:"both",pageSize:"6"});
  10. });
  11. </script>

y listo el plugin se llama jQuery Quick Pagination abajo el link
veras que se resuelve facil facil y no tendras mas problemas

lee bien el codigo y reemplaza lo que tengas que reemplazar pues es codigo debera de funcionar si lo pones correctamente.

http://www.jquery4u.com/demos/jquery-quick-pagination/
__________________
Enseña todo lo que sepas...
Aprende todo lo que puedas..
  #29 (permalink)  
Antiguo 09/12/2013, 04:28
Avatar de angel_xx_1990  
Fecha de Ingreso: junio-2013
Ubicación: Guadalajara
Mensajes: 236
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Cambiar contenido de una variable mediante if

Nose, la verdad me parece interesante el código expuesto pero se separa bastante de todo lo que tengo realizado...lo unico que me falta es que al iniciar la página moda.php, (tengo puesto que imprima el contenido de $selectapart e imprime Todos los artículos, que es lo que quiero) osea el select está en Todos los artículos, pero NO los muestra para que los muestre tengo que cambiar el select a otra diferente y volver a marcar Todos Los Artículos.....¿Alguien sabe como hacer para que funcione al entrar al php?
  #30 (permalink)  
Antiguo 09/12/2013, 04:55
Avatar de angel_xx_1990  
Fecha de Ingreso: junio-2013
Ubicación: Guadalajara
Mensajes: 236
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Cambiar contenido de una variable mediante if

LO SIENTO, debo pedir perdon a VOSK jejej, culpa mía a veces me centro tanto en una cosa que olvido lo demás....estaba bien como me decía lo único que me ocurría era que no estaba bien ordenado el código, había colocado cosas antes que deberían ir después de otras, ahora al entrar al php perfecto y al cambiar de página mantiene el select y navega sobre él....perfecto!!

ES JUSTO LO QUE QUERÍA jejej :)

pero....ocurre un último detalle y es que por ejemplo si estoy en la página 3 de "Todos los artículos" y cambio el select a por ejemplo "Niños" me muestra la página 3 de niños...

Quisiera que al cambiar el select empieze siempre en la página 1....


En las consultas tengo:

$registros = 15;
$pagina=$_GET["num"];
if (is_numeric($pagina))
$inicio= (($pagina-1)*$registros);
else
$inicio= 0;

$rst_form=mysql_query("SELECT * FROM xxxx WHERE xxxxx='Todos los artículos' LIMIT $inicio,$registros;");

$paginas = ceil ($num_rows/$registros);




Si cambiara $pagina=$_GET["num"] por $pagina=1;

parece que funciona pero ¿sería posible que esto me diera problemas?

Etiquetas: contenido, mediante, select, variable
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 00:47.