Foros del Web » Programando para Internet » PHP »

Capturar dato

Estas en el tema de Capturar dato en el foro de PHP en Foros del Web. Alguien que me pueda ayudar con este codigo? Tengo una suma de 3 campos con una funcion en javascript el resultado se carga en un ...
  #1 (permalink)  
Antiguo 22/10/2013, 08:13
 
Fecha de Ingreso: mayo-2011
Mensajes: 15
Antigüedad: 12 años, 11 meses
Puntos: 0
Capturar dato

Alguien que me pueda ayudar con este codigo?

Tengo una suma de 3 campos con una funcion en javascript el resultado se carga en un ultimo campo con onchange, todos los campos los capturo en unas variables con PHP pero no he logrado capturar el del resultado que esta en onchage, este es el codigo:

<html>...
<head>
<script>
function suma() {

valor1 = document.getElementById("A").value;
valor2 = document.getElementById("B").value;
valor3 = document.getElementById("C").value;
total = parseFloat(valor1) + parseFloat(valor2) + parseFloat(valor3);

document.getElementById("total").value= total;
}
</script>


</head>

<body>
<form action="resultsuma.php" method="post">


<input type="text" value="" name="var1" id="A" onchange="suma();">
<input type="text" value="" name="var2" id="B" onchange="suma();">
<input type="text" value="" name="var3" id="C" onchange="suma();">
<input type="text" value="" name="form" id="total" value="0" disabled onchange="suma();">

<input type="submit" value="Guardar">

</body>
</html>

<?php

$variable1 = $_POST['var1'];
echo $variable1;
$variable2 = $_POST['var2'];
echo $variable2;
$variable3 = $_POST['var3'];
echo $variable3;
$resultado = $_GET['total'];
echo $resultado;
?>
  #2 (permalink)  
Antiguo 22/10/2013, 08:21
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 7 meses
Puntos: 578
Respuesta: Capturar dato



Código:
$resultado = $_POST['total'];
echo $resultado;
O POST o GET.

Saludos
  #3 (permalink)  
Antiguo 22/10/2013, 08:24
 
Fecha de Ingreso: mayo-2011
Mensajes: 15
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: Capturar dato

No ya lo intenté asi y me sale este error

Notice: Undefined index: total
  #4 (permalink)  
Antiguo 22/10/2013, 08:27
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 7 meses
Puntos: 578
Respuesta: Capturar dato

Caray... Sería buena idea que pusieras el mismo id que name o seguir un patrón lógico.

Código:
$_POST['form'];
  #5 (permalink)  
Antiguo 22/10/2013, 08:28
 
Fecha de Ingreso: mayo-2009
Ubicación: Japon
Mensajes: 60
Antigüedad: 14 años, 11 meses
Puntos: 12
Respuesta: Capturar dato

Cita:
Iniciado por placks73 Ver Mensaje
Alguien que me pueda ayudar con este codigo?

Tengo una suma de 3 campos con una funcion en javascript el resultado se carga en un ultimo campo con onchange, todos los campos los capturo en unas variables con PHP pero no he logrado capturar el del resultado que esta en onchage, este es el codigo:

<html>...
<head>
<script>
function suma() {

valor1 = document.getElementById("A").value;
valor2 = document.getElementById("B").value;
valor3 = document.getElementById("C").value;
total = parseFloat(valor1) + parseFloat(valor2) + parseFloat(valor3);

document.getElementById("total").value= total;
}
</script>


</head>

<body>
<form action="resultsuma.php" method="post">


<input type="text" value="" name="var1" id="A" onchange="suma();">
<input type="text" value="" name="var2" id="B" onchange="suma();">
<input type="text" value="" name="var3" id="C" onchange="suma();">
<input type="text" value="" name="form" id="total" value="0" disabled onchange="suma();">

<input type="submit" value="Guardar">

</body>
</html>

<?php

$variable1 = $_POST['var1'];
echo $variable1;
$variable2 = $_POST['var2'];
echo $variable2;
$variable3 = $_POST['var3'];
echo $variable3;
$resultado = $_GET['total'];
echo $resultado;
?>

tienes algunos errores

primero, todas las variables se enviaran bajo el metodo post, por lo que

$resultado = $_POST['total];

en segundo lugar el formulario esta algo "raro", no deberías poner el "onchange" dentro de la variable desactivada (ya que no tiene funciona alguna) y el nombre tiene que ser "total y no "form"

el código quedaría así

<input type="text" value="" name="var1" id="A" onchange="suma();">
<input type="text" value="" name="var2" id="B" onchange="suma();">
<input type="text" value="" name="var3" id="C" onchange="suma();">
<input type="text" value="" name="total" id="total" value="0" disabled />

pero, no entiendo porque envías todas las variables a php si lo sumas del lado cliente...
  #6 (permalink)  
Antiguo 22/10/2013, 08:29
 
Fecha de Ingreso: mayo-2011
Mensajes: 15
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: Capturar dato

Nada ahora sale este error

Notice: Undefined index: form
  #7 (permalink)  
Antiguo 22/10/2013, 08:33
 
Fecha de Ingreso: mayo-2009
Ubicación: Japon
Mensajes: 60
Antigüedad: 14 años, 11 meses
Puntos: 12
Respuesta: Capturar dato

Cita:
Iniciado por placks73 Ver Mensaje
Nada ahora sale este error

Notice: Undefined index: form

es que el name "form" fue cambiado a "total"


no te es mas fácil sumar los datos del lado del servidor?
  #8 (permalink)  
Antiguo 22/10/2013, 08:38
 
Fecha de Ingreso: mayo-2011
Mensajes: 15
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: Capturar dato

Si correcto ya lo pasé como dijiste, el tema es que es una muestra de lo que tengo que arreglar en un codigo mas complejo que esta construido con un array y el que me esta ayudando a realizar la operacion es ese script por eso necesito capturar el del resultado pero ya lo cambie como dijiste y aun asi no captura el resultado
  #9 (permalink)  
Antiguo 22/10/2013, 08:44
 
Fecha de Ingreso: mayo-2009
Ubicación: Japon
Mensajes: 60
Antigüedad: 14 años, 11 meses
Puntos: 12
Respuesta: Capturar dato

pues la verdad no se que esta sucediendo pero reescribo todo

Código PHP:

<script type="text/javascript">

function suma() 
{
    valor1 = document.getElementById("A").value;
    valor2 = document.getElementById("B").value;
    valor3 = document.getElementById("C").value;
    total = parseFloat(valor1) + parseFloat(valor2) + parseFloat(valor3);
    document.getElementById("total").value= total;
}

</script>


</head>

<body>
    <form action="resultsuma.php" method="post">
        <input type="text" value="" name="var1" id="A" onchange="suma();" /> 
        <input type="text" value="" name="var2" id="B" onchange="suma();" />
        <input type="text" value="" name="var3" id="C" onchange="suma();" /> 
        <input type="text" value="" name="form" id="total" value="0" disabled /> /* en nombre de la variable es form */
        <input type="submit" value="Guardar">
    </form>
</body> 
</html>

<?php 

$variable1 
$_POST['var1'];

echo 
$variable1;
$variable2 $_POST['var2'];

echo 
$variable2
$variable3 $_POST['var3'];

echo 
$variable3;
$resultado $_POST['form'];  /* en nombre de la variable aquí también */

echo $resultado;
  #10 (permalink)  
Antiguo 22/10/2013, 08:50
 
Fecha de Ingreso: mayo-2011
Mensajes: 15
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: Capturar dato

Agradezco enormemente tu ayuda,

Copié tal cual el codigo que me acabaste de poner y sale elmismo error

222
Notice: Undefined index: form in C:\wamp\www\resultsuma.php on line 23
Call Stack
# Time Memory Function Location
1 0.0007 249512 {main}( ) ..\resultsuma.php:0
  #11 (permalink)  
Antiguo 22/10/2013, 09:23
 
Fecha de Ingreso: mayo-2009
Ubicación: Japon
Mensajes: 60
Antigüedad: 14 años, 11 meses
Puntos: 12
Respuesta: Capturar dato

quitas el "disabled" antes de enviar el formulario?
  #12 (permalink)  
Antiguo 22/10/2013, 09:26
 
Fecha de Ingreso: mayo-2011
Mensajes: 15
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: Capturar dato

Ok listo el problema era el disable...

Pero una pregunta es que no quiero que el usuario digite en ese campo por eso lo dejé disable me tocaria crear otro campo hidden que capture ese mismo dato?
  #13 (permalink)  
Antiguo 22/10/2013, 09:37
 
Fecha de Ingreso: mayo-2009
Ubicación: Japon
Mensajes: 60
Antigüedad: 14 años, 11 meses
Puntos: 12
Respuesta: Capturar dato

realiza la suma del lado del servidor

$total = (float)$variable1 + (float)$variable2 + (float)$variable3;

o si tienes que obligatoria-mente hacer todo en js

Código PHP:
<script type="text/javascript"

function 
suma()  

    
valor1 document.getElementById("A").value
    
valor2 document.getElementById("B").value
    
valor3 document.getElementById("C").value
    
total parseFloat(valor1) + parseFloat(valor2) + parseFloat(valor3); 
    
document.getElementById("total").valuetotal
    
document.getElementById("form").valuetotal


</script> 


</head> 

<body> 
    <form action="test.php" method="post" enctype="multipart/form-data"> 
        <input type="hidden" name="form" id="form" />
        <input type="text" value="" name="var1" id="A" onchange="suma();" />  
        <input type="text" value="" name="var2" id="B" onchange="suma();" /> 
        <input type="text" value="" name="var3" id="C" onchange="suma();" />
        <input type="text" value="0" id="total" disabled /> /* en nombre de la variable es form */ 
        <input type="submit" value="Guardar"> 
    </form> 
</body>  
</html> 
  #14 (permalink)  
Antiguo 22/10/2013, 11:01
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Capturar dato

Los campos disabled no se envían al servidor, si no quieres que el usuario digite nada, puedes ponerle el atributo readonly para eso.

Saludos.

Etiquetas: dato, html, variable
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 14:31.