Foros del Web » Programando para Internet » PHP »

Definir variable de varios Select

Estas en el tema de Definir variable de varios Select en el foro de PHP en Foros del Web. Hola, Tengo un un pequeño problemilla que ya habia posteado pero no se pudo solucionar, lo comento de nuevo para ver si alguien me puede ...
  #1 (permalink)  
Antiguo 10/12/2009, 15:13
Diegotopet
Invitado
 
Mensajes: n/a
Puntos:
Pregunta Definir variable de varios Select

Hola,

Tengo un un pequeño problemilla que ya habia posteado pero no se pudo solucionar, lo comento de nuevo para ver si alguien me puede ayudar.

tengo un formulario del cual tengo una lista de desplegables, que al momento de seleccionar en el Select el producto 1, me desplega los tamaños para el producto 1, así también si selecciono el producto 2, me desplega los tamaños del producto 2, así sucesivamente.

El problema es al momento de almacenar la variable del formulario a php, por que en todos los select(para los 3 tamaños les pongo name="orden_tamano"
ejemplo.
Código HTML:
select id="orden_tamano" name="orden_tamano">
          <option>Select One</option>
          <option value="1x1">1x1</option>
          <option value="2x2">2x2</option>
          <option value="3x3">3x3 </option>
          <option>-------------------</option>
        </select> 
entonces al momento asignar el valor a mi variable lo hago así:

Código PHP:
$orden_tamano = isset($_POST['orden_tamano'])? $_POST['orden_tamano']: ''
la cosa es que si selecciono el producto 1 y selecciono el tamaño para el producto 1( porque yo no veo los tamaños para producto 2 y 3)

la variable siempre me almacena el valor del producto numero 3(que yo no vi y por lo tanto me lo almacena como "Select One")

Que tengo que hacer para que me almacene la que escoji???

se me ocurre cambiarle el name="orden_tamano" de todos a name="orden_tamano1", name="orden_tamano2", name="orden_tamano3"

y que mi variable almacene el valor que sea valido, pero no se como hacerlo, o ustedes que sugieren?
  #2 (permalink)  
Antiguo 10/12/2009, 15:31
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 15 años, 3 meses
Puntos: 150
Respuesta: Definir variable de varios Select

¿tu formulario dice que tiene dos <select>? deberias poner mas codigo de tu formulario a ver que se vea mas claro porque php no recoge bien los datos
  #3 (permalink)  
Antiguo 10/12/2009, 15:52
Diegotopet
Invitado
 
Mensajes: n/a
Puntos:
Exclamación Respuesta: Definir variable de varios Select

Ok, este es mas del código del formulario

Código HTML:
<div class="required field">

      <div id="capainicio">

        <label for="Product">Product</label>
        <select id="orden_producto" name="orden_producto" onchange="expandir_formulario()">
          <option value="" Selected>Select One</option>
          <option value="producto-1">producto-1</option>
          <option value="producto-2">producto-2</option>
          <option value="producto-3">producto-3</option>
        </select>
      </div>
<br/>

      <!-- Diferente Capas-->
      <!-- Capa 1-->
      <div id="capaexpansion1">
      <label for="Size">Size producto-1</label>
        <select id="orden_tamano" name="orden_tamano">
          <option>Select One</option>
          <option value="1x1">1x1</option>
          <option value="1x2">1x2</option>
          <option value="1x3">1x3</option>
        </select>
      </div>

      <!-- Capa 2-->
      <div id="capaexpansion2">
      <label for="Size">Size producto-2</label>
        <select id="orden_tamano" name="orden_tamano">
          <option>Select One</option>
          <option value="2x1">2x1</option>
          <option value="2x2">2x2</option>
          <option value="2x3">2x3</option>
        </select>
      </div>

      <!-- Capa 3-->
      <div id="capaexpansion3">
      <label for="Size">Size producto-3</label>
        <select id="orden_tamano" name="orden_tamano">
          <option>Select One</option>
          <option value="3x1">3x1</option>
          <option value="3x2">3x2</option>
          <option value="3x3">3x3</option>
        </select>
      </div>

      </div>

<div class="submit">  
  <input type="submit" value="New Order" onclick="verifica()" name="boton"/></div> 
y este es de mi php

Código PHP:

nclude
("../db.php"); // archivo de conexión a base de datos
if (isset($_POST['boton'])){
$orden_producto = isset($_POST['orden_producto'])? $_POST['orden_producto']: '';
$orden_tamano = isset($_POST['orden_tamano'])? $_POST['orden_tamano']: '';

if(
$orden_producto=="" || $orden_tamano==""){
echo 
'<script name="accion">alert("All fields are required.")</script>';
}else{

$sql="INSERT INTO MITABLA (orden_producto, orden_tamano,) VALUES ('".$orden_producto."', '".$orden_tamano."')";
mysql_query($sql) or die (mysql_error());

$numero_orden mysql_insert_id();
include 
'sendemail.php';
}
}
?> 
Espero que sirva, o tambien pongo parte del .CSS y del . JS?
  #4 (permalink)  
Antiguo 10/12/2009, 15:59
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 15 años, 3 meses
Puntos: 150
Respuesta: Definir variable de varios Select

bueno , en efecto tienes 3 campos del formulario que se llaman igual (orden_tamano), y aunque esten ocultos a la vista del usuario estan ahi, y al llamarse igual php solo puede recoger uno de ellos (el ultimo).

Tu idea inicial es buena, ponle nombres distintos, y luego con php verifica que campo es el que tienes que tomar (orden_tamano1, orden_tamano2 y orden_tamano3):

Código PHP:
if ($orden_producto=="producto-1") {$orden_tamano=$orden_tamano1;}
if (
$orden_producto=="producto-2") {$orden_tamano=$orden_tamano2;}
if (
$orden_producto=="producto-3") {$orden_tamano=$orden_tamano3;} 
O con un Switch Case mejor, que no tenia ganas de escribir xD
  #5 (permalink)  
Antiguo 10/12/2009, 16:30
Diegotopet
Invitado
 
Mensajes: n/a
Puntos:
De acuerdo Respuesta: Definir variable de varios Select

Muchas Gracias, Ya esta listo,
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 22:13.