Comunidad de diseño web y desarrollo en internet online

No me hace la validacion.. AYUDA POR FAVOOOOR..

Citar            
MensajeEscrito el 12 Dic 2009 03:42 pm
ola a todos !!!, bueno, llevo dias peleandome con una calculadora php, a la que he metido un poco de validacion java script y no soy capaz de que aga la validacion al ejecutarla.. la verdad es que empiezo a desesperarme jejej todo lo demas me funciona, pero la validacion no.. ojala podais ayudarme, por que sinceramente no se que mas hacer.. el codigo de la calculadora os lo pongo a continuacion, pero LO QUE ME IMPORTA ES LA PARTE DE VALIDACION DEL PRINCIPIO, ESPERO VUESTRA AYUDA,

Lo que quiero que compruebe la funcion es que ;


--se han introducido datos en los dos operandos, es decir, no están vacíos
--si la operación es una división, comprobar también que el segundo operando no es cero.

lo maximo que he llegado a hacer es esto, y no ejecuta la validacion.. espero vuestra ayuda jejej MUCHAS GRACIAS DE ANTEMANO.. UN SALUDOOO!!


<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" type="text/css" href="estilocalculadora.css" title="style">
<title> Calculadora luisma</title>
<script language="javascript">

function validar(a,b){
var "a"=document.getElementByName('a').value;
var "b"=document.getElementByName('b').value;
if(a=='.'|| b== '.'){
alert('Es requerido un numero...!!');
return (false);
}
else{
if( (parseDouble(a)/parseDouble(b))=='0' )
{ alert('mensaje...')

return (false);
}
}
return (true);
}
</script>

</head>

<body>


<form action="calculadoraluismaa.php" onsubmit ="return validar(this)" method="get">
<p>Primer numero:</p>
<input type="text" name="a" /><br />
<p>Segundo numero: </p>
<input type="text" name="b" /><br />
<p> Operacion<br /> </p>
<input type="radio" name="calculo" value="mas" checked />
+<br />
<input type="radio" name="calculo" value="menos" />
-<br />
<input type="radio" name="calculo" value="multiplicar" />
x<br />
<input type="radio" name="calculo" value="dividir" />
/<br />
<input type="submit" value="Calcular" /> <input type="reset" value="Borrar" /> <br />


</form>


<?php
$a=$_GET['a'];
$b=$_GET['b'];
$calculo=$_GET['calculo'];

if (strcmp($a, "") && strcmp($b, ""))
{
switch ($_GET['calculo'])
{

case "mas":

$x = ($_GET['a'] + $_GET['b']);
break;

case "menos":

$x= ($_GET['a'] - $_GET['b']);
break;


case "multiplicar":

$x= ($_GET['a'] * $_GET['b']);
break;


case "dividir":

$x= ($_GET['a'] / $_GET['b']);
break;

default:
echo "Operacion incorrecta";

}

echo $x;

}


?>
<p><a href= "calculadoraluismaa.php" > recargar pagina </a></p>

</body>
</html>

Por luisma

0 de clabLevel



 

firefox
Citar            
MensajeEscrito el 16 Dic 2009 02:53 pm
No se porque necesitas una calculadora en PHP, mas comodo seria una javascript, y asi no tener la necesidad de recargar la pagina con cada operacion, asi mismo dederias usar POST y NO GET, en fin cada quien tiene sus gustos aqui te envio tu codigo modificado para que haga lo que necesitas

Código PHP :

<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" type="text/css" href="estilocalculadora.css" title="style">
<title> Calculadora luisma</title>

<script language="javascript" src="js/jquery-1.3.2.js"></script>
<script language="javascript">

function validar(){
   var a   =   document.getElementById('a').value;
   var b   =   document.getElementById('b').value;
   var c   =   document.getElementById('d').checked;
   if(a==''|| b== ''){
      alert('Es requerido un numero...!!');
      return false;
   } else {
      if(c) {
         alert('El divisor no puede ser 0');
         return false;
      }
   }
   return true;
};
</script>

</head>

<body>
<form onSubmit="return validar(this)" method="post">
<p>Primer numero:</p>
<input type="text" name="a" id="a" value="<?php isset($_POST[a]) ? $a=$_POST[a] : $a = ''; echo $a; ?>" /><br />
<p>Segundo numero: </p>
<input type="text" name="b" id="b" value="<?php isset($_POST[b]) ? $b=$_POST[b] : $b = ''; echo $b; ?>" /><br />
<p> Operacion<br /> </p>
<input type="radio" name="calculo" <?php if ($_POST[calculo]='mas') echo "checked"; ?> value="mas" checked />
+<br />
<input type="radio" name="calculo" <?php if ($_POST[calculo]='menos') echo "checked"; ?> value="menos" />
-<br />
<input type="radio" name="calculo" <?php if ($_POST[calculo]='multiplicar') echo "checked"; ?> value="multiplicar" />
x<br />
<input type="radio" name="calculo" id="d" <?php if ($_POST[calculo]='dividir') echo "checked"; ?> value="dividir" />
/<br />
<input type="submit" value="Calcular" name="Calcular" /> <input type="reset" value="Borrar" /> <br />
<?php
   $a=$_POST['a'];
   $b=$_POST['b'];
   $calculo=$_POST['calculo'];
   
   if (strcmp($a, "") && strcmp($b, "")) {
      switch ($_POST['calculo']) {
         case "mas":   
            $x = ($_POST['a'] + $_POST['b']);
            break;   
         case "menos":   
            $x= ($_POST['a'] - $_POST['b']);
            break;      
         case "multiplicar":   
            $x= ($_POST['a'] * $_POST['b']);
            break;      
         case "dividir":
            if ($b=='0'){
               ?>
               <script>
               validar();
               </script>
               <?php
               $x   =   "";
            } else {
               $x= ($_POST['a'] / $_POST['b']);
            };
            break;   
         default:
            $x= "Operacion incorrecta";
         break;
      }   
      echo $x;   
   }
?>
</form>
<p><a href= "calculadoraluismaa.php" > recargar pagina </a></p>
</body>
</html>

Notese que cambie el getElementByName por getElementById, motivo con name no validaba con Id si, notese que borre los parametros del a funcion validar, antes decia validar(a,b) ahora dice validar(), no tenia sentido, ya que dentro de la funcion no recogias dichos valores y asignabas valores a las variables arbitrariamente, ingrese una nueva variable que recoge el tipo de operacion para saber cuando es division y actuar segun corresponde, añadi mas lineas al switch de PHP para que ejecutar el codigo en caso de ser division entre 0. cualquei duda preguntas nomas. Saludos.

Copy, Paste, Play and Enjoy

Por NeoCesar

Claber

1415 de clabLevel

14 tutoriales

Genero:Masculino  

Algun lugar dentro de la Matrix (Lima - Perú)

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.