PHP - suma.!

   
Vista:

suma.!

Publicado por daniel (42 intervenciones) el 28/08/2015 01:12:00
hola a todos.!

quisiera ver si me pueden ayudar con esto.!

este es una parte de mi form
1
2
3
4
5
6
7
8
9
10
11
12
<form>
<tr>
       <td> Tipo de pago </td>
	 <td >
	        <select name="fpago" type="text" required>
	           <option VALUE="">Seleccione Tipo de pago</option>
	           <option VALUE="AA">AA - $100.00</option>
	           <option VALUE="BB">BB - $200.00</option>
	       </select>
	 </td>
</tr>
</form>

Y esta es una funcion de javascript.

donde realizo una suma, pero quisiera saber como hago para sumar una cantidad mas que es la de mi form dependiendo de cual escojan si es AA que sume 100 y si es BB que sume 200

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function actualizasuma()
{
	var grantotal=new Number(0);
 
	<?php
		$result=mysql_query($sql);
		while($row=mysql_fetch_assoc($result)){
		$campo="total-".$row["id"];
	?>
	valorcampo=document.getElementById('<?php echo($campo); ?>');
	grantotal=grantotal + Number(valorcampo.value);
	<?php
		}
	?>
	document.getElementById('gtotal').value=grantotal + "'.<AQUI EL VALOR A SUMAR>.'";
}

COMO LO PUEDO HACER SI TODO ESTA EN LA MISMA PAGINA.. ??
SALUDOS
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JAG

suma.!

Publicado por JAG (16 intervenciones) el 28/08/2015 14:34:22
Yo probaría a combinar el onchange de un select con los value de cada option... En vez de poner en value las letras pon los dígitos a sumar, los capturas con el onchange llamando a la función y los sumas...

Si te hacen falta esas letras en el value crea tu otro attribute llamada "cantidad" por ejemplo y lo capturas, luego de igual forma, con el onchange harías la suma.

http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_onchange

Un saludo!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Vainas

suma.!

Publicado por Vainas (254 intervenciones) el 28/08/2015 18:59:46
Buenas:

JAG es cierto que puede cambiar el value por el numero y asi reliazar la suma pero quizas necesite tambien ese valor en el servidor. La opcion que le has dado de un nuevo atributo esta bien pero no se si del todo (corrígeme si me equivoco) ya que para agregar un nuevo atributo en html (al menos en html5) se necesita que antes del atributo lleve la palabra "data-"

asi que quedaria algo asi:

1
2
3
4
5
<select name="fpago" type="text" required>
	           <option data-cantidad="0" value="0">Seleccione Tipo de pago</option>
	           <option data-cantidad="100" value="AA">AA - $100.00</option>
	           <option data-cantidad="200" value="BB">BB - $200.00</option>
</select>

para acceder a el con js puedes hacerlo asi:

1
2
var x = document.getElementById("mySelect").selectedIndex;
var valor = document.getElementById("mySelect")[x].dataset.cantidad;

Es decir una vez obtienes el "option" seleccionado solo es buscar el objeto dataset.cantidad.

Hay tambien quien lo hace con funciones como:

1
var valor = optionxxx.getAttribute('data-cantidad');

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Publicado por vcvc (42 intervenciones) el 28/08/2015 19:14:35
Les agradesco mucho pero aun no llego a lo que busco y es que esos datos si los necesito guardar en la base de datos..
Miren a si, si me funciona

<tr>
<td >Tipo de Envio</td>
<td align="center" colspan="2">
<select name="envio" id="envio" type="text" required onChange="actualizasuma();">
<option VALUE="">Seleccione </option>
<option VALUE="este dato lo necesito">AA- $120</option>
<option VALUE="este dato lo necesito">BB - $180</option>
</select>
</td>
</tr>

x=document.getElementById('envio').value;
if(x == ''){
document.getElementById('gtotal').value= grantotal;
}else if (x == este dato lo necesito){
document.getElementById('gtotal').value= grantotal + 120;
}else{
document.getElementById('gtotal').value= grantotal + 180;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar