Foros del Web » Programando para Internet » PHP »

Problema con captura de variables

Estas en el tema de Problema con captura de variables en el foro de PHP en Foros del Web. Hola a todos, tengo un pequeño problemita de variables que no puedo solucionar. tengo un formulario que en el que tengo 3 diferentes productos, para ...
  #1 (permalink)  
Antiguo 08/12/2009, 16:12
Diegotopet
Invitado
 
Mensajes: n/a
Puntos:
Exclamación Problema con captura de variables

Hola a todos, tengo un pequeño problemita de variables que no puedo solucionar.

tengo un formulario que en el que tengo 3 diferentes productos, para cada producto tengo 3 tamaños diferentes.

Tengo 3 archivos diferentes

style.css

Código HTML:
#capaexpansion1{
    position:relative;
    display:none;}
#capaexpansion2{
    position:relative;
    display:none;}
#capaexpansion3{
    position:relative;
    display:none;}
#capaexpansion4{
    position:relative;
    display:none;}
#capaexpansion5{
    position:relative;
    display:none;}
otro

Código HTML:
var xOp7Up,xOp6Dn,xIE4Up,xIE4,xIE5,xNN4,xUA=navigator.userAgent.toLowerCase();if(window.opera){var i=xUA.indexOf('opera');if(i!=-1){var v=parseInt(xUA.charAt(i+6));xOp7Up=v>=7;xOp6Dn=v<7;}}else if(navigator.vendor!='KDE' && document.all && xUA.indexOf('msie')!=-1){xIE4Up=parseFloat(navigator.appVersion)>=4;xIE4=xUA.indexOf('msie 4')!=-1;xIE5=xUA.indexOf('msie 5')!=-1;}else if(document.layers){xNN4=true;}xMac=xUA.indexOf('mac')!=-1;function xDef(){for(var i=0; i<arguments.length; ++i){if(typeof(arguments[i])=='undefined') return false;}return true;}function xDisplay(e,s){if(!(e=xGetElementById(e))) return null;if(e.style && xDef(e.style.display)) {if (xStr(s)) e.style.display = s;return e.style.display;}return null;}function xGetElementById(e){if(typeof(e)!='string') return e;if(document.getElementById) e=document.getElementById(e);else if(document.all) e=document.all[e];else e=null;return e;}function xStr(s){for(var i=0; i<arguments.length; ++i){if(typeof(arguments[i])!='string') return false;}return true;}

function expandir_formulario(){
if (document.new_order.orden_producto.value == "0"){
    xDisplay('capaexpansion1', 'none')
    xDisplay('capaexpansion2', 'none')
    xDisplay('capaexpansion3', 'none')
    xDisplay('capaexpansion4', 'none')
    xDisplay('capaexpansion5', 'none')
 }
if (document.new_order.orden_producto.value == "1"){
    xDisplay('capaexpansion1', 'block')
    xDisplay('capaexpansion2', 'none')
    xDisplay('capaexpansion3', 'none')
    xDisplay('capaexpansion4', 'none')
    xDisplay('capaexpansion5', 'none')
 }
 if (document.new_order.orden_producto.value == "2"){
    xDisplay('capaexpansion1', 'none')
    xDisplay('capaexpansion2', 'block')
    xDisplay('capaexpansion3', 'none')
    xDisplay('capaexpansion4', 'block')
    xDisplay('capaexpansion5', 'none')
 }
 if (document.new_order.orden_producto.value == "3"){
    xDisplay('capaexpansion1', 'none')
    xDisplay('capaexpansion2', 'none')
    xDisplay('capaexpansion3', 'block')
    xDisplay('capaexpansion4', 'block')
    xDisplay('capaexpansion5', 'none')
 }
 if (document.new_order.orden_producto.value == "4"){
    xDisplay('capaexpansion1', 'none')
    xDisplay('capaexpansion2', 'none')
    xDisplay('capaexpansion3', 'none')
    xDisplay('capaexpansion4', 'block')
    xDisplay('capaexpansion5', 'none')
 }
 if (document.new_order.orden_producto.value == "5"){
    xDisplay('capaexpansion1', 'none')
    xDisplay('capaexpansion2', 'none')
    xDisplay('capaexpansion3', 'none')
    xDisplay('capaexpansion4', 'none')
    xDisplay('capaexpansion5', 'block')
 }
} 
y mi php en el que llamo a esos archivos y en el cual tengo un formulario que al momento de seleccionar un producto me desplega los tamaños correspondientes, este es el codigo:

Código HTML:
($_POST['boton'])
{

$orden_producto = isset($_POST['orden_producto'])? $_POST['orden_producto']: '';
$orden_tamano = isset($_POST['orden_tamano'])? $_POST['orden_tamano']: '';
$orden_envio = isset($_POST['orden_envio'])? $_POST['orden_envio']: '';


if($cliente_nombre=="" || $cliente_domicilio=="" || $cliente_pais=="" || $cliente_ciudad=="" || $cliente_email=="" || $orden_fotografo=="" || $orden_venta=="" || $orden_lugar=="" || $orden_producto=="" || $orden_tamano=="" || $orden_archivos==""){
echo '<script name="accion">alert("All fields are required.")</script>';
}elseif(!intval($cliente_cp)){
echo '<script name="accion">alert("Please enter POSTAL CODE below.")</script>';
}elseif(!intval($cliente_telefono)){
echo '<script name="accion">alert("Please enter PHONE NUMBER below.")</script>';
}else{

$sql="INSERT INTO photo_order (cliente_nombre, cliente_domicilio, cliente_cp, cliente_pais, cliente_ciudad, cliente_telefono, cliente_email, orden_fotografo, orden_venta, orden_lugar, orden_producto, orden_tamano, orden_envio, orden_archivos, orden_notas, orden_fecha) VALUES ('".$cliente_nombre."', '".$cliente_domicilio."', '".$cliente_cp."', '".$cliente_pais."', '".$cliente_ciudad."', '".$cliente_telefono."', '".$cliente_email."', '".$orden_fotografo."', '".$orden_venta."', '".$orden_lugar."', '".$orden_producto."', '".$orden_tamano."', '".$orden_envio."', '".$orden_archivos."', '".$orden_notas."', '".$orden_fecha."')";
mysql_query($sql) or die (mysql_error());

$numero_orden = mysql_insert_id();
include 'send.php';
}
}
?> 
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type='text/javascript' src='formexp.js'></script>
<link href="style.css" media="screen" rel="stylesheet" type="text/css" />
<link rel="shortcut icon" href="../Imag/favicon.ico">
<title>Photo Adventures - Nueva Orden</title>
</head>
<body>
<center><div align="left" id="photostyle">
  <form action="" method="POST" name="new_order">
  <input type="hidden" name="opt" />
<fieldset id="order-information">
<h3>Order Information</h3>
      <div class="required field">
      <div id="capainicio">
        <label for="Product">Product<span><span>This product was registered in the order.</span></span></label>
        <select id="orden_producto" name="orden_producto" onchange="expandir_formulario()">
          <option value="" Selected>Select One</option>
          <option value="Photo_Book">Photo Book</option>
          <option value="Canvas_Roll">Canvas Roll</option>
          <option value="Canvas_Gallery_Wrapped">Canvas Gallery Wrapped</option>
          <option value="">-------------------------------------------------------------------</option>
        </select>
      </div><br/>
      <!-- Diferente Capas-->
      <!-- Capa 1-->
      <div id="capaexpansion1">
      <label for="Size">Size<span><span>Size Photo Book.</span></span></label>
        <select id="orden_tamano" name="orden_tamano">
          <option>Select One</option>
          <option value="Extra Book 40 pages - $49.00">Extra Book 40 pages - $49.00</option>
          <option value="Extra book 80 pages - $69.00">Extra book 80 pages - $69.00</option>
          <option value="FREE WITH PURCHASE OF 15 PICTURES">FREE WITH PURCHASE OF 15 PICTURES </option>
          <option>-------------------------------------------------------------------</option>
        </select>
      </div>
      <!-- Capa 2-->
      <div id="capaexpansion2">
      <label for="Size">Size<span><span>Size Canvas Roll.</span></span></label>
        <select id="orden_tamano" name="orden_tamano">
          <option>Select One</option>
          <option value="12 x 18 roll - $49.00">12 x 18 roll - $49.00</option>
          <option value="16x24 roll - $99.00">16x24 roll - $99.00</option>
          <option value="20x30 roll - $129.00">20x30 roll - $129.00</option>
          <option value="24x36 roll - $149.00">24x36 roll - $149.00</option>
          <option>-------------------------------------------------------------------</option>
        </select>
      </div>
      <!-- Capa 3-->
      <div id="capaexpansion3">
      <label for="Size">Size<span><span>Size Canvas Gallery Wrapped.</span></span></label>
        <select id="orden_tamano" name="orden_tamano">
          <option>Select One</option>
          <option value="12 x18 Gallery Wrapped - $69.00">12 x18 Gallery Wrapped - $69.00</option>
          <option value="16x24 Gallery Wrapped - $119.00">16x24 Gallery Wrapped - $119.00</option>
          <option value="20x30 Gallery Wrapped - $149.95">20x30 Gallery Wrapped - $149.95</option>
          <option value="24x36 Gallery Wrapped - $199.00">24x36 Gallery Wrapped - $199.00</option>
          <option>-------------------------------------------------------------------</option>
        </select>
      </div>
      <!-- Capa 4-->
      <div id="capaexpansion4"><br/>
      <label for="Shipping">Shipping &amp; Handling<span><span>Shipping &amp; handling charge.</span></span></label>
        <select id="orden_envio" name="orden_envio">
          <option value="Free " selected="selected">Select One</option>
          <option value="USA / CAN / MX - $14.95">USA / CAN / MX - $14.95</option>
          <option value="International - $39.95">International - $39.95</option>
          <option>-------------------------------------------------------------------</option>
        </select>
      </div>
    </div>
    </fieldset>
    <div class="submit">  
  <input type="submit" value="New Order" onclick="verifica()" name="boton"/></div>
  </form>
</div>
</center>
</body>
</html> 
el problema es que si selecciono el primer producto, en mi base de datos el tamaño del producto siempre aparece como Select One.
alguna sugerencia

Ya le cale con selected, pero sigue igual porque entonces me deja la variable en blanco.
  #2 (permalink)  
Antiguo 08/12/2009, 16:48
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 16 años, 3 meses
Puntos: 105
Respuesta: Problema con captura de variables

no se te entiende bien el problema.... pero quizas tu solucion sea esta:

y cambia
Código php:
Ver original
  1. ($_POST['boton']){
  2. ...........
  3. }
por:
Código php:
Ver original
  1. if (isset($_POST['boton'])){
  2. ...........
  3. }

y luego creo que podrias cambiar tus selects .......

Código php:
Ver original
  1. <select id="orden_producto" name="orden_producto" onchange="expandir_formulario()">
  2. <option value="">Select One</option>
  3. <?php
  4. $array_orden_producto = array("Photo Book", "Canvas Roll", "Canvas Gallery Wrapped");
  5. foreach($array_orden_producto as $valor){
  6.    $seleccionado = ($valor == $orden_producto) ? "selected='selected'" : "";
  7.    echo "<option value='$valor' $seleccionado>$valor</option>";
  8. }
  9. ?>
  10. </select>

claro, y asi para cada select.........

suerte.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog

Última edición por masterojitos; 08/12/2009 a las 17:03
  #3 (permalink)  
Antiguo 08/12/2009, 16:54
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 8 meses
Puntos: 25
Respuesta: Problema con captura de variables

ó intenta cambiar:

($_POST['boton'])

por:

if (isset($_POST['boton']))


Saludos
__________________
Hospedaje Web al mejor costo!
  #4 (permalink)  
Antiguo 09/12/2009, 10:02
Diegotopet
Invitado
 
Mensajes: n/a
Puntos:
Exclamación Respuesta: Problema con captura de variables

Mmmm ya cambie lo de
Código PHP:
if (isset($_POST['boton'])){...... 
Y no me ayudo a resolver el problema.

Lo de los select que me dicen arriba no entendí bien.

Pero por si no entendieron tratare de explicar de nuevo.
lo que hace mi formulario es que con el javascript y con el css al momento que selecciono un producto, me desplega los tamaños de ese producto, creo yo que el problema es que a todos los select del tamaño le estoy asignando el

Código HTML:
name="orden_tamano"
entonses al momento de enviar el formulario donde defino mis variables en php

Código PHP:
$orden_tamano = isset($_POST['orden_tamano'])? $_POST['orden_tamano']: ''
toma la ultima variable almacenada (osea como tengo 3 grupos de tamaños, si escojo el primer producto y escojo su tamaño, no almacena la variable del primer grupo de tamaño sino la del tercero, porque como el tercero no lo mostró, pues me lo deja como "Select One".

No se si así si me explico mejor?
  #5 (permalink)  
Antiguo 09/12/2009, 11:09
Diegotopet
Invitado
 
Mensajes: n/a
Puntos:
Pregunta Respuesta: Problema con captura de variables

No me explique?
  #6 (permalink)  
Antiguo 09/12/2009, 14:18
Diegotopet
Invitado
 
Mensajes: n/a
Puntos:
Pregunta Respuesta: Problema con captura de variables

Ayuda Please
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:31.