Ver Mensaje Individual
  #6 (permalink)  
Antiguo 23/12/2014, 15:02
arcangelcross
 
Fecha de Ingreso: febrero-2006
Mensajes: 85
Antigüedad: 18 años, 3 meses
Puntos: 0
Respuesta: Formulario con IF

Gracias por sus respuestas. Esto es lo que he hecho hasta ahora:

Código PHP:
Ver original
  1. <?php
  2.    
  3.      if($_POST) {
  4.      //var_dump($_POST);
  5.      $tarjeta = $_POST["tarjeta"];
  6.      $radio = $_POST["radio"];
  7.    
  8.  //var_dump($tarjeta);
  9.      
  10.  $claseTarjeta = "";
  11.  
  12.      if ($tarjeta == "456337" OR $tarjeta == "456338" OR
  13.          $tarjeta == "517784" OR $tarjeta == "493823" OR
  14.          $tarjeta == "541254" OR $tarjeta == "493824" OR
  15.          $tarjeta == "514006" OR $tarjeta == "529164" OR
  16.          $tarjeta == "529060" OR $tarjeta == "523592" AND
  17.          $radio == "1" )
  18.          {
  19.             $radio = 1;              
  20.        
  21.      }
  22.      
  23.      else {
  24.          echo "La tarjeta no coincide con el programa de lealtad ";
  25.          }
  26.      
  27.      if ($tarjeta == "410864" OR $tarjeta == "451418" OR
  28.          $tarjeta == "518439" OR $tarjeta == "524471"
  29.          AND   $radio == "2")
  30.          {
  31.             $radio = 2;              
  32.        
  33.      }
  34.      
  35.      else {
  36.          echo "La tarjeta no coincide con el programa de lealtad ";
  37.          }
  38.      
  39.  
  40.      if ($tarjeta == "552450" OR $tarjeta == "477280" OR
  41.          $tarjeta == "523587"  AND   $radio == "3")
  42.          {
  43.             $radio = 3;              
  44.        
  45.      }
  46.  
  47.  else {
  48.          echo "La tarjeta no coincide con el programa de lealtad ";
  49.          }
  50.      
  51.  
  52.      if ($tarjeta == "" ){
  53.         $msgTarjeta = "Ingrese los primeros seis dígitos de su tarjeta";
  54.         $claseTarjeta = "error";
  55.      }
  56.      
  57.      
  58.      }
  59.  
  60.     ?>

HTML:

Código HTML:
Ver original
  1. <form name="form1"  method="post" action="carrito_final.php">
  2.         <input type="radio" name="radio" id="radio2" value="<?php echo $radio; ?>">
  3.         <table width="42%" border="0">
  4.         <tr>
  5.           <td width="51%">
  6.         BN Premios          </td>
  7.           <td width="49%">&nbsp;</td>
  8.         </tr>
  9.         <tr>
  10.           <td><input type="radio" name="radio" id="radio" value="<?php echo $radio; ?>">
  11.           Platino          </td>
  12.           <td>&nbsp;</td>
  13.         </tr>
  14.         <tr>
  15.           <td><input type="radio" name="radio" id="radio" value="<?php echo $radio; ?>">
  16.           Élite          </td>
  17.           <td>&nbsp;</td>
  18.         </tr>
  19.        
  20.         <tr>
  21.           <td colspan="2">&nbsp;</td>
  22.         </tr>
  23.         <tr>
  24.           <td colspan="2">Primeros 6 números de tarjeta BN</td>
  25.         </tr>
  26.         <tr>
  27.           <td colspan="2"><input type="text" name="tarjeta" id="tarjeta" value="<?php echo $tarjeta; ?>"></td>
  28.         </tr>
  29.         <tr>
  30.           <td colspan="2">Últimos 4 dígitos</td>
  31.         </tr>
  32.         <tr>
  33.           <td colspan="2"><input type="text" name="tarjeta2" id="tarjeta2"></td>
  34.         </tr>
  35.         <tr>
  36.           <td colspan="2">
  37.             <input type="submit" name="button" id="button" value="Seleccionar">
  38.           </td>
  39.         </tr>
  40.       </table>
  41.       </form>


Si se valida, la página siguiente tiene esto:

Código PHP:
Ver original
  1. <?php if($_POST["radio"] == 1) {
  2.     ConfirmacionPago ($_POST["radio"]);
  3.     $contenido = 'Hola xxxxx;<br><br>Su solicitud de compra ha sido enviada....<br><p>';
  4.     $asunto = 'Solicitud de compra en ...';
  5.     EnvioCorreoHtml(ObtenerMailUsuario($_SESSION['MM_IdUsuario']), $contenido, $asunto)
  6.    
  7.    
  8.     ?>
  9.  
  10. //LO mismo para 2 y  3, sólo que cambia el mensaje
  11.  
  12. //Funcion ConfirmacionPago
  13.  
  14.  
  15. function ConfirmacionPago ($tipo_pago)
  16.  
  17. {  
  18.     global $database_conexion, $conexion;
  19.     mysql_select_db($database_conexion, $conexion);
  20.    
  21.      $insertSQL = sprintf("INSERT INTO compra (idUsuario, fechacompra, tipopago, totalpago, totalpuntos) VALUES (%s, NOW(), %s, %s, %s )",
  22.                        GetSQLValueString($_SESSION['MM_IdUsuario'], "int"),
  23.                        $tipo_pago,
  24.                        $_SESSION["TotalPrecio"],
  25.                        $_SESSION["TotalPuntos"]
  26.                        );
  27.  
  28.    $Result1 = mysql_query($insertSQL, $conexion) or die(mysql_error());
  29.    $ultimacompra = mysql_insert_id();  
  30.    ActualizacionCarrito($ultimacompra);
  31.    
  32.   }  
  33.  
  34.  
  35. function TextoFormaPago($TipoPago)
  36.  
  37. {
  38.     if ($TipoPago== 1) return " Bc Premios";
  39.     if ($TipoPago== 2) return " Platino";
  40.     if ($TipoPago== 3) return " Élite";
  41.    
  42.    
  43.    
  44.     }


Antes de hacer la validación me funcionaba todo. El problema es cuando intento validarlo con este código que hice.

Alguien me podría ayudar a ver en dónde está el error.

Ahora, en la pagina, el campo tarjeta me muestra el siguiente mensaje:


<br /><b>Notice</b>: Undefined variable: tarjeta in <b>C:\xampp\htdocs\xampp\mallfinal\carrito_pago.ph p</b> on line <b>100</b><br />

Lo extraño que esa variable la definí en $tarjeta = $_POST["tarjeta"];

Desde ya agradezco sus comentarios.

PD. La validación prefiero hacerla con PHP y no con Javascript porque prefiero que esta se haga en el lado del servidor y no en el lado del cliente.