Duda de HTML y PHP

Buenas tardes,

Acabo de ver colgado en Internet un archivo .php que solucionaría todas mis dudas sobre un formulario que estoy haciendo. Estoy seguro que, si logro verlo, sacaré adelante un trabajo que tengo pendiente.

El problema, es que al abrir el archivo .php, clicko en el botón de la derecha > ver código fuente de la página y sólo puedo ver el html.

¿Existe alguna manera de poder verlo?. Porque de verdad que me estoy volviendo loco.

Muchísimas gracias.
PHP funciona del lado del servidor, esto es, se ejecuta en el servidor web y después se lanza la página web en el lado del cliente.

Por tanto, al ejecutarse el código antes de visualizar la web, no puedes ver el contenido del archivo, sino su efecto en el código HTML generado como código fuente.

Saludos.
Entiendo.

Muchísimas gracias por vuestra rápida respuesta.
¿Qué problema tienes con tu formulario PHP?

En internet tienes miles de ejemplos de formularios funcionando y el código en PHP de éstos para poder descargarlo.
Un ejemplo bastante básico: https://www.w3schools.com/PhP/php_form_complete.asp ;)

Pero tal y cómo dice @J_sevillista lo primero entender cómo funciona PHP.
Pues el problema que tengo es que al hacer un formulario, a la hora de enviar el resultado, no me esta funcionado en absoluto. Me aparecen precios dispares, o si por ejemplo quiero dos destornilladores, no me hace la multiplicacion por dos. O, si hago varias selecciones, no me suma correctamente.

Formulario visto desde la web

Imagen

HTML del formulario

Imagen

PHP del formulario
Imagen


[mamaaaaa] [mamaaaaa]
copia el código con la opción código, del foro sera mas fácil para todos que es imagen que falta código
PHP
<html>
<head>
   <title>Ferretería</title>
   <link rel="stylesheet" type="text/css" href="ferreteria_examen_diseno.css">
</head>
<body>

<?
   $nombre=$_POST["nombre"];
   $dni=$_POST["dni"];
   $telefono=$_POST["telefono"];
   $tipo=$_POST["tipo"];
   $destornilladores=$_POST["destornilladores"];
   $alicates=$_POST["alicates"];
   $tip=array("contado","credito");
   $t_dest=array("estrella","planos","multipunta");
      $pre_dest=array(10,7,6);
      $longitud=count($pre_dest);
   $t_ali=array("de corte","de cremallera","martillos");
      $pre_ali=array(13,14.50,11.50);
      $longitud=count($pre_ali);
   $precio=0;
   $cant_dest=array($_POST["n1"],$_POST["n2"],$_POST["n3"]);
   $cant_ali=array($_POST["n4"],$_POST["n5"],$_POST["n6"]);
   
   
   echo "destornilladores: $destornilladores";
   echo "alicates: $alicates";
   //DESTORNILLADORES
      for($i=0;$i<$longitud;$i++){
         if($destornilladores==$t_dest[$i]){
            $precio=$precio+$pre_dest[$i]*$cant_dest[$i];
            $precio=$precio+$pre_dest[$i];
         echo "El precio es $precio";
         }
      }
   
   //ALICATES
      for($i=0;$i<$longitud;$i++){
         if($alicates==$t_ali[$i]){
            $precio=$precio+$pre_ali[$i]*$cant_ali[$i];
            $precio=$precio+$pre_ali[$i];
         echo "El precio es $precio";
         }
      }
      
   ?>
   
      
         Nombre:<?echo $nombre?><br>
         DNI:<?echo $dni?><br>
         Telefono:<?echo $telefono?><br><br>
         Tipo de pago:<?echo $tipo?><br>
         Alicates:<? echo "$alicates"?><br><br>
         Destornilladores:<? echo "$destornilladores"?><br><br><br>
         Precio:<? echo "$precio €"?><br>
      
</body>
</html>   



Formulario HTML
<!DOCTYPE HTML>
<html>
   <head>
      <title>Ferretería</title>
      <link rel="stylesheet" type="text/css" href="ferreteria_examen_diseno.css">
   </head>
<body>

<img src="http://www.aarias.colexio-karbo.com/17-18/Ferreteria_examen/ferreterias%20sanchez.png">

<form action="ferreteria_examen.php" method="post">

<div class="arriba">
   <fieldset><legend><p style="color:DodgerBlue;">Datos de la compra</p></legend><br>
   Nombre:<br><input type="text" placeholder="Escribe tu nombre" name="nombre" />
   <br><br>
   DNI:<br><input type="text" placeholder="Escribe tu DNI 12345678X" maxlength="9" name="dni" />
   <br><br>
   Telefono:<br><input type="tex" placeholder="Escribe tu telefono" maxlength="9" name="telefono" />
   </fieldset>
</div>

<div class="centro">
   <fieldset><legend><p style="color:DodgerBlue;">Tipo de pago</p></legend>
   <select name="tipo">
      <option>Seleccione una opción</option>
      <option>Contado</option>
      <option>Credito</option>
   </select>
   </fieldset>
</div>

<div class="destabajo">   
   <fieldset><legend><p style="color:DodgerBlue;">Destornilladores</p></legend>
   <input type="checkbox" name="destornilladores" value="estrella">Estrella</input>
   <input type="number" name="n1" class="numeros" value="1" min="1" max="100"><br>
   <input type="checkbox" name="destornilladores" value="planos">Planos</input>
   <input type="number" name="n2" class="numeros" value="1" min="1" max="100"><br>
   <input type="checkbox" name="destornilladores" value="multipuntas">Multipuntas</input>
   <input type="number" name="n3" class="numeros" value="1" min="1" max="100"><br>
  </fieldset>
</div>

<div class="aliderecha">   
   <fieldset><legend><p style="color:DodgerBlue;">Alicates</p></legend>
   <input type="checkbox" name="alicates" value="de corte">De corte</input>
   <input type="number" name="n4" class="numeros" value="1" min="1" max="100"><br>
   <input type="checkbox" name="alicates" value="de cremallera">De cremallera</input>
   <input type="number" name="n5" class="numeros" value="1" min="1" max="100"><br>
   <input type="checkbox" name="alicates" value="martillos">Martillos</input>
   <input type="number" name="n6" class="numeros" value="1" min="1" max="100"><br>
  </fieldset>
</div>
   
<div class="botonde">
<fieldset><legend><p style="color:DodgerBlue;">Resumen de pedido</p></legend>
   <button type="submit" name="enviar">Enviar pedido</button>
   <button type="reset" name="borrar">Borrar pedido</button>
  </fieldset>


Mil gracias
@twilight I
Creo que el problema está en que estás recogiendo mal los valores del formulario. Debería ser algo tal que así:

$_POST["n1"];
$_POST["n2"];
...


Y con, por ejemplo, javascript, habilitar/deshabilitar el input del valor dependiendo del valor del checkbox.

Otra forma sin javascript:

HTML:
<div class="destabajo">   
   <fieldset><legend><p style="color:DodgerBlue;">Destornilladores</p></legend>
   <input type="checkbox" name="destornilladores['estrella']">Estrella</input>
   <input type="number" name="n1" class="numeros" value="1" min="1" max="100"><br>
   <input type="checkbox" name="destornilladores['planos']">Planos</input>
   <input type="number" name="n2" class="numeros" value="1" min="1" max="100"><br>
   <input type="checkbox" name="destornilladores['multipuntas']">Multipuntas</input>
   <input type="number" name="n3" class="numeros" value="1" min="1" max="100"><br>
  </fieldset>
</div>


Y ya en el PHP compruebas que está checked y que no con $_POST["destornilladores"] (es un array).

Yo optaría por javascript si es posible para evitarte enviar al php datos que no vas a utilizar
Muchisimas gracias por la respuesta, aunque me sigue sin ir. En fin, supongo que habra algo mas que se me esta escapando. Lo dicho, mil gracias.

Tendre que mirar lo de JavaScript. Seguire tu consejo!

Reitero mi agradecimiento.
@twilight I Tiene algunos fallos, como que uno de los destornilladores no lo pilla, el último, y unos notice que supongo que serán porque estás usando arrays, eso ya lo arreglas tú. por cierto el código le faltaban los <?php habías puesto solo <?:

-HTML:
<!DOCTYPE HTML>
<html>
   <head>
      <title>Ferretería</title>
      <link rel="stylesheet" type="text/css" href="ferreteria_examen_diseno.css">
   </head>
<body>

<img src="http://www.aarias.colexio-karbo.com/17-18/Ferreteria_examen/ferreterias%20sanchez.png">

<form action="resultado.php" method="post">

<div class="arriba">
   <fieldset><legend><p style="color:DodgerBlue;">Datos de la compra</p></legend><br>
   Nombre:<br><input type="text" placeholder="Escribe tu nombre" name="nombre">
   <br><br>
   DNI:<br><input type="text" placeholder="Escribe tu DNI 12345678X" maxlength="9" name="dni">
   <br><br>
   Telefono:<br><input type="tex" placeholder="Escribe tu telefono" maxlength="9" name="telefono">
   </fieldset>
</div>

<div class="centro">
   <fieldset><legend><p style="color:DodgerBlue;">Tipo de pago</p></legend>
   <select name="tipo">
      <option>Seleccione una opción</option>
      <option>Contado</option>
      <option>Credito</option>
   </select>
   </fieldset>
</div>

<div class="destabajo">   
   <fieldset><legend><p style="color:DodgerBlue;">Destornilladores</p></legend>
   <input type="checkbox" name="destornilladores[]" value="estrella">Estrella</input>
   <input type="number" name="n1" class="numeros" value="1" min="1" max="100"><br>
   <input type="checkbox" name="destornilladores[]" value="planos">Planos</input>
   <input type="number" name="n2" class="numeros" value="1" min="1" max="100"><br>
   <input type="checkbox" name="destornilladores[]" value="multipuntas">Multipuntas</input>
   <input type="number" name="n3" class="numeros" value="1" min="1" max="100"><br>
  </fieldset>
</div>

<div class="aliderecha">   
   <fieldset><legend><p style="color:DodgerBlue;">Alicates</p></legend>
   <input type="checkbox" name="alicates[]" value="de corte">De corte</input>
   <input type="number" name="n4" class="numeros" value="1" min="1" max="100"><br>
   <input type="checkbox" name="alicates[]" value="de cremallera">De cremallera</input>
   <input type="number" name="n5" class="numeros" value="1" min="1" max="100"><br>
   <input type="checkbox" name="alicates[]" value="martillos">Martillos</input>
   <input type="number" name="n6" class="numeros" value="1" min="1" max="100"><br>
  </fieldset>
</div>
   
<div class="botonde">
<fieldset><legend><p style="color:DodgerBlue;">Resumen de pedido</p></legend>
   <button type="submit" name="enviar">Enviar pedido</button>
   <button type="reset" name="borrar">Borrar pedido</button>
  </fieldset>
   </div>
</form>
</body>
</html>


-PHP:
<html>
<head>
   <title>Ferretería</title>
</head>
<body>

<?php
   $nombre=$_POST["nombre"];
   $dni=$_POST["dni"];
   $telefono=$_POST["telefono"];
   $tipo=$_POST["tipo"];
   $destornilladores=$_POST["destornilladores"];
   $alicates=$_POST["alicates"];
   $tip=array("contado","credito");
   $t_dest=array("estrella","planos","multipunta");
      $pre_dest=array(10,7,6);
      $longitud=count($pre_dest);
   $t_ali=array("de corte","de cremallera","martillos");
      $pre_ali=array(13,14.50,11.50);
      $longitud=count($pre_ali);
   $precio=0;
   $total="";
   $cant_dest=array($_POST["n1"],$_POST["n2"],$_POST["n3"]);
   $cant_ali=array($_POST["n4"],$_POST["n5"],$_POST["n6"]);

   //DESTORNILLADORES
      for($i=0;$i<$longitud;$i++){
         if($destornilladores[$i]==$t_dest[$i]){
            $precio=$precio+$pre_dest[$i]*$cant_dest[$i];
         //echo "El precio es $precio";
       $total = $total."-Destornillador ".$destornilladores[$i].", cantidad ".$cant_dest[$i].", precio/unidad ".$pre_dest[$i]."€<br />";
         }
      }
   
   //ALICATES
      for($i=0;$i<$longitud;$i++){
         if($alicates[$i]==$t_ali[$i]){
            $precio=$precio+$pre_ali[$i]*$cant_ali[$i];
         //echo "El precio es $precio";
       $total = $total."-Alicates ".$alicates[$i].", cantidad ".$cant_ali[$i].", precio/unidad ".$pre_ali[$i]."€<br />";
         }
      }
     
   ?>
   
     
         Nombre:<?php echo $nombre?><br>
         DNI:<?php echo $dni?><br>
         Telefono:<?php echo $telefono?><br><br>
         Tipo de pago:<?php echo $tipo?><br>
      <?php echo $total ?><br>
         Precio:<?php  echo $precio."€"?><br>
     
</body>
</html>   
MILLONES DE GRACIAS. En serio, me has sacado de un apuro.

GRACIAS. Que jodido crack eres.
11 respuestas