Foros del Web » Programando para Internet » PHP »

utilizar la variable $categorías = $_GET['categorías']; en varias selects

Estas en el tema de utilizar la variable $categorías = $_GET['categorías']; en varias selects en el foro de PHP en Foros del Web. hasta que no pulse el sumit1 no ejecute el código de debajo y no salga el submit 2, y hasta que no pulse submit 2 ...
  #1 (permalink)  
Antiguo 09/11/2011, 11:59
 
Fecha de Ingreso: febrero-2009
Mensajes: 443
Antigüedad: 15 años, 2 meses
Puntos: 1
2 submit validar hasta que no pulsemos el boton no ara todas las condiciones

hasta que no pulse el sumit1 no ejecute el código de debajo y no salga el submit 2, y hasta que no pulse submit 2 no ejecute el código de debajo, y como diferenciar el primer submit del segundo seria con el name no ?

submit 1
{
ejecutar codigo submit 1

submit 2
{
ejecutar submit2
}

}
  #2 (permalink)  
Antiguo 09/11/2011, 12:35
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: 2 submit validar hasta que no pulsemos el boton no ara todas las condicio

Para eso lo que haces es declaras el atributo name del submit:
Código HTML:
Ver original
  1. <input type="submit" name="submit1" value="Submit 1"/>
  2. <input type="submit" name="submit2" value="Submit 2"/>

En PHP usas isset:
Código PHP:
Ver original
  1. if (isset($_POST['submit1'])) { // submit 1
  2.  
  3. }
  4.  
  5. if (isset($_POST['submit2'])) { // submit 2
  6.  
  7. }

Saludos.
  #3 (permalink)  
Antiguo 10/11/2011, 03:40
 
Fecha de Ingreso: febrero-2009
Mensajes: 443
Antigüedad: 15 años, 2 meses
Puntos: 1
Respuesta: 2 submit validar hasta que no pulsemos el boton no ara todas las condicio

name seria como una variable no aunque no tenga el $?
isset sirve para saber si una variable esta definida o declarada y si le llega su valor

otra duda

hay gente que declara todos las variables al principio
$nombre_producto_pc = $_GET['nombre_producto_pc'];

yo lo hago en función de cuando lo necesito me refiero que hasta que no pulse el botón submit
no le va a llegar ningún valor en la variable $nombre_producto_pc
y si lo necesito en otra parte del código lo vuelvo a declarar
$nombre_producto_pc = $_GET['nombre_producto_pc'];

o es posible hacerlo al principio y ya no hace falta volverlo hacer

aunque para mi es mas fácil llamarlo cada vez que lo necesite para entender el código aunque ello implique gastar mas recursos por parte del servidor php

espero que me puedas ayudar?
if (isset($_GET['actualizar_precios']))
{
$nombre_producto_pc = $_GET['nombre_producto_pc'];
}
  #4 (permalink)  
Antiguo 10/11/2011, 04:32
 
Fecha de Ingreso: febrero-2009
Mensajes: 443
Antigüedad: 15 años, 2 meses
Puntos: 1
problema entre 2 formularios 2 selects y 1 update

1 select - tengo un formulario que hago una select y devuelvo unas categorías
selecciono una categoría
y pulso boton submit

2 select - hago otra select entre productos y categorias en funcion de la primera categoria que he seleccionado en el primera select y me devuelve varios productos en este otro formulario
la categoría, el nombre , foto, precio
selecciono el boton submit actualizar precios

haría el update en un bucle for
modifico o uno o varios precios

ahora tendría que hacer otra vez la segunda select con la diferencia que el boton sumit actualizar productos no aparecerá, solo servirá para mostrar los cambios realizados antes de volver en la primera select
lo digo para no tener que seleccionar otra vez la misma categoria para poder ver los cambios
de los productos

mas adelante lo are con funciones pero de momento como no domino mucho el tema de funcionas lo ara como pueda, lo digo para volver a llamar la segunda select sin que tener que copiar 2 veces el mismo codigo


------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
tengo hecho dos ficheros con pequeñas variaciones pero uno puede hacer los updates y el otro no y no se el porque
la única diferencia es que una me ahorro un formulario pero siempre tiene asignada la misma categoría en la segunda select
sin posibilidad de cambiar de categoría

fichero 1 no funciona los updates

formulario 1
selecciono un categoría y pulso el boton submit para enviar la categoría en el segundo formulario
select - categoría

formulario 2
select - productos y categoría
hago una select entre productos y categorías en función de la categoría seleccionado en el primer formulario 1
devuelvo varios productos

no me hace los updates no entra en el bucle for
update - productos


fichero 2 ya me funciona pero nunca puedo cambiar de categoría

siempre tengo definido las misma categoría
formulario2
select - productos y categoría
me hace los updates
update - productos


si queréis también puedo colgar el código

Última edición por albertrc; 10/11/2011 a las 04:53
  #5 (permalink)  
Antiguo 10/11/2011, 05:45
 
Fecha de Ingreso: febrero-2009
Mensajes: 443
Antigüedad: 15 años, 2 meses
Puntos: 1
utilizar la variable $categorías = $_GET['categorías']; en varias selects

select1 categorías
submit1

tanto si lo pongo aquí ($categorías = $_GET['categorías'];)

if (isset($_GET['submit1'])
{

formulario1

como aquí ($categorías = $_GET['categorías'];)

select 2
submit2

}



if (isset($_GET['submit2']){

formulario 2
update1

como aquí $categorías = $_GET['categorías'];

aquí nunca llega la categoría a la
select 2
}


el problema tampoco creo que sean los if
la pregunta es si en el primer if utilizo la variable $categorías en el segundo if este valor se pierde y no lo puedo volver a utilizar, tendría que hacer como una constante para tener siempre la categoría lo que pasa es que siempre va a variar por eso no puedo hacer una contante, alguna otra cosa que desconozco

hago una select de la categoría
selección una categoría

hago una otra select entre categoría i productos en función de la primera select
devuelvo unos productos

hago un update de los productos

devuelvo otra vez los productos para ver sus cambios

ahora puedo volver a seleccionar otra categoria para volver a seguir los mismos pasos pero actualizando otros productos

todos esta hecho sin funciones
la select2 se podría hacer una vez y después llamar a una función para a volver hacer los mismos pero sin el botón de actualizar solo para ver los productos cambiados
pero no domino el tema de las funciones
  #6 (permalink)  
Antiguo 10/11/2011, 06:17
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Respuesta: utilizar la variable $categorías = $_GET['categorías']; en varias selects

mostranos el codigo de los dos formularios.

vos queres hacer selects dependientes? tendrias que hacerlo con ajax
  #7 (permalink)  
Antiguo 10/11/2011, 06:17
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 10 meses
Puntos: 181
Respuesta: utilizar la variable $categorías = $_GET['categorías']; en varias selects

No se entiende absolutamente nada de lo que estas preguntando. He leido tres veces el post y no entiendo de que va. Te recomiendo que lo vuelvas a redactar para darle una estructura lógica.
  #8 (permalink)  
Antiguo 10/11/2011, 06:18
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Respuesta: utilizar la variable $categorías = $_GET['categorías']; en varias selects

vi que esta repetido el post. mostranos el codigo
  #9 (permalink)  
Antiguo 14/11/2011, 00:33
 
Fecha de Ingreso: febrero-2009
Mensajes: 443
Antigüedad: 15 años, 2 meses
Puntos: 1
Respuesta: utilizar la variable $categorías = $_GET['categorías']; en varias selects

no funciona el update

el problema esta en la linea 120 en el for no le llega el numero a la variable $contar_numero_filas_categoria_productos_select

en el bucle for no le llega el contador, he puesto un 8 y he probado una categoría que tenia 8 productos y me ha funcionado, como puedo hacer para que al contador le llegue el numero en función de su categoría y producto
se tendría que enviar por get o post o hidden

de alguna forma tendría que conservar la categoría y así podría tener la categoría y saber cuantos productos hay entre la categoría y productos hasta que no cambiara de categoría no perder este valor, ademas después de hacer un update o mas de uno volvería a necesitar la categoría para hacer un select para saber que productos se han actualizado

en definitiva que hasta que no vuelva a pulsar sel boton submit del primer formulario no perder el valor de la categoria, este como puedo hacerlo


Código PHP:
Ver original
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <html>
  3.     <head>
  4.         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  5.         <title></title>
  6.     </head>
  7.     <body>     
  8.   <?php
  9.    $hostname="***********";
  10.    $user="*********";
  11.    $password="*********";
  12.    $database="*********";
  13.    $link = mysqli_connect($hostname,$user,$password,$database);
  14.    
  15.    mysqli_query ($link,'SET NAMES "utf8" ');
  16.    $query_categorias_select =
  17.    "SELECT *
  18.    FROM categorias";
  19.    $result_categorias_select = mysqli_query($link,$query_categorias_select);
  20.    
  21.    $contar_numero_categorias_select = mysqli_num_rows($result_categorias_select);
  22.   ?>
  23.  
  24.     <form action="precio_final.php" method="get">
  25.         <h1>Precios (Mirar o Actualitzar)</h1>
  26.         <label for="categorias">Categorias</label><br/>
  27.         <select id="categorias" name="categorias" size="<?php echo $contar_numero_categorias_select?>" multiple="multiple">
  28.         <?php
  29.             while($row_categorias_select = mysqli_fetch_array($result_categorias_select, MYSQLI_ASSOC))
  30.             {
  31.         ?>
  32.             <option value="<?php echo  $row_categorias_select['nombre_categoria_pc']?>">
  33.             <?php echo ucfirst($row_categorias_select['nombre_categoria_usuario']) ?> </option>      
  34.         <?php
  35.             }
  36.         ?>
  37.          </select>
  38.          <br/>
  39.          <br/>
  40.         <input type="submit" name="seleccionar_categoria" value="Selecciona Categoria"/>
  41.     </form>
  42.  
  43.   <?php
  44.  
  45.     /**************************************/
  46.     if (isset($_GET['seleccionar_categoria']))
  47.     {
  48.     $categorias = $_GET['categorias'];
  49.  
  50.    
  51.     $hostname="*********";
  52.     $user="********";
  53.     $password="********";
  54.     $database="**********";
  55.     $link = mysqli_connect($hostname,$user,$password,$database);
  56.    
  57.     mysqli_query ($link,'SET NAMES "utf8" ');
  58.     $query_categoria_productos_select ="
  59.     SELECT
  60.     categorias.nombre_categoria_usuario,
  61.     productos.nombre_producto_pc,
  62.     productos.nombre_producto_usuario,
  63.     productos.ruta_foto_pequeña,
  64.     productos.precio_producto_kg
  65.     FROM productos INNER JOIN categorias
  66.     ON productos.categorias_nombre_categoria_pc = categorias.nombre_categoria_pc
  67.     WHERE categorias.nombre_categoria_pc = \"" .  $categorias . "\";";
  68.     $result_categoria_productos_select = mysqli_query($link,$query_categoria_productos_select);
  69.  
  70.     $contar_numero_filas_categoria_productos_select = mysqli_num_rows($result_categoria_productos_select);
  71.     ?>
  72.     <form action="precio_final.php" method="get">
  73.         <table>
  74.     <?php
  75.         $contador_categoria = 0;
  76.         while($row_categoria_productos_select = mysqli_fetch_array($result_categoria_productos_select, MYSQLI_ASSOC))
  77.         {
  78.     ?> 
  79.         <?php
  80.             if($contador_categoria == 0)
  81.             {
  82.         ?>
  83.             <td><h2><?php echo $row_categoria_productos_select['nombre_categoria_usuario']?></h2></td>
  84.         <?php
  85.             }
  86.         ?>
  87.         <tr>  
  88.         <td><?php echo $row_categoria_productos_select['nombre_producto_usuario']?></td>
  89.         <td><?php echo $row_categoria_productos_select['ruta_foto_pequeña']?></td> 
  90.         <td><input type="hidden" name="nombre_producto_pc[]"  
  91.         value="<?php echo $row_categoria_productos_select['nombre_producto_pc']?>"></td><br/></br/>
  92.         <td><input type="text" name="precio_producto_kg[]" size="5" maxlength="5"
  93.         value="<?php echo number_format($row_categoria_productos_select['precio_producto_kg'], 2, ',','.')?>"> €</td>
  94.         </tr>      
  95.         <?php
  96.             $contador_categoria++;
  97.         }
  98.         ?>         
  99.         </table>
  100.         <input type="submit" name="actualitzar_precios" value="Actualitzar Precios" />  
  101.     </form>
  102.    
  103.     <?php
  104.     }
  105.     /************************************/
  106.    
  107.     if (isset($_GET['actualitzar_precios']))
  108.     {
  109.         $nombre_producto_pc = $_GET['nombre_producto_pc'];
  110.    
  111.         $precio_producto_kg = $_GET['precio_producto_kg'];
  112.  
  113.         $hostname="************";
  114.         $user="************";
  115.         $password="*********";
  116.         $database="**********";
  117.         $link = mysqli_connect($hostname,$user,$password,$database);
  118.         mysqli_query ($link,'SET NAMES "utf8" ');
  119.  
  120.         for($precios_categoria_productos_updates = 0; $precios_categoria_productos_updates < $contar_numero_filas_categoria_productos_select; $precios_categoria_productos_updates++ )
  121.         {  
  122.             $query_precios_categoria_productos_updates =
  123.             'UPDATE productos
  124.             SET precio_producto_kg=' .  number_format($precio_producto_kg[$precios_categoria_productos_updates], 2, '.',',') .
  125.             ' WHERE nombre_producto_pc=  \'' . $nombre_producto_pc[$precios_categoria_productos_updates] . '\';';
  126.             $result_precios_categoria_productos_updates = mysqli_query($link,$query_precios_categoria_productos_updates);
  127.         }  
  128.     ?>
  129.         </table>
  130.     </form>
  131.     <?php  
  132.     }
  133.     ?>
  134.     </body>
  135. </html>

Última edición por albertrc; 16/11/2011 a las 22:46

Etiquetas: condiciones, formulario, selects, submit, todas, update, botones, 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 12:35.