Pregunta:
Fecha: 25-03-2019 10:09:25
(En Español)
Notice: Undefined index: prima in C:\xampp\htdocs\app\nuevo-certificado.php on line 83
Notice: Undefined index: iva in C:\xampp\htdocs\app\nuevo-certificado.php on line 85
Notice: Undefined index: total in C:\xampp\htdocs\app\nuevo-certificado.php on line 86
Ayuda con PHP y MYSQL[Resuelta]
Hola tengo el siguiente problema espero me puedan ayudar, introdusco una cantidad "X" y el porcetaje de una cuota "50" y automaticamente me aparece PRIMA, IVA y TOTAL, pero no me los guarda ¿Porque?Notice: Undefined index: prima in C:\xampp\htdocs\app\nuevo-certificado.php on line 83
Notice: Undefined index: iva in C:\xampp\htdocs\app\nuevo-certificado.php on line 85
Notice: Undefined index: total in C:\xampp\htdocs\app\nuevo-certificado.php on line 86
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$poliza = $_POST["poliza"];
$cuota = $_POST["cuota"];
$prima = $_POST["prima"];
$gastosexp = $_POST["gastosexp"];
$iva = $_POST["iva"];
$total = $_POST["total"];
if($cliente == 'X'){
$cliente ='';
}else{
query("INSERT INTO merca (idViaje, idCliente, Cliente, rfc, moneda, mercancia, importe, TipoOperacion, FechaAlta, detalles, TipoTransporte, FechaSalida, FechaLlegada, folio, porigen, eorigen, corigen, pdestino, edestino, cdestino, poliza, cuota, prima, gastosexp, iva, total) VALUES ('".$idCliente."','".$idCliente."', '".$cliente."', '".$rfc."', '".$moneda."', '".$mercancia."', '".$importe."', '".$tipoOperacion."', '".$fechaAlta."', '".$detalles."', '".$tipoTransporte."', '".$fechaSalida."', '".$fechaLlegada."', '".$folio."','".$porigen."','".$eorigen."', '".$corigen."', '".$pdestino."', '".$edestino."', '".$cdestino."', '".$poliza."', '".$cuota."', '".$prima."', '".$gastosexp."', '".$iva."', '".$total."')");
}
}
?>
<div class="hr-line-dashed"></div>
<div class="form-group">
<h3 style="margin-left:20px;">Informacion de emision</h3>
<label class="col-sm-2 control-label">Poliza</label>
<div class="col-sm-2"><input type="text" name="poliza" class="form-control m-b"></div>
<label class="col-sm-2 control-label">Cuota Base (%)</label>
<div class="col-sm-2"><input id="valor2" type="number" onkeyUp="calcular();" name="cuota" class="form-control m-b"></div>
<label class="col-sm-2 control-label">Prima Neta</label>
<div class="col-sm-2"><span id="result" type="number" name="prima" class="form-control m-b"></span></div>
<label class="col-sm-2 control-label">Gastos de Expedicion</label>
<div class="col-sm-2"><input type="text" name="gastosexp" class="form-control m-b"></div>
<label class="col-sm-2 control-label">IVA (16%)</label>
<div class="col-sm-2"><span id="resultado3" type="hidden" name="iva" class="form-control m-b"></span></div>
<label class="col-sm-2 control-label">Total</label>
<div class="col-sm-2"><span id="resulta2" type="hidden" name="total" class="form-control m-b"></span></div>
</div>
<script>
function calcular(){
//Obtienes el valor
var valor = document.getElementById("valor").value;
var valor2 = document.getElementById("valor2").value;
var result= document.getElementById('result');
var total= document.getElementById('total');
//le descuentas el 8% y lo agregas al HTML
var descuento = parseInt(valor)*valor2/10000;
var iva = parseInt(valor)*valor2*1.16/10000;
//agrega los resultados al DOM
result.innerHTML = + descuento;
resulta2.innerHTML = + iva.toFixed(2);
resultado3.innerHTML = iva.toFixed(2) - descuento.toFixed(2);
}
</script>
Votos: 0 -
Respuestas: 6 -
Vistas: 13
Compartir en: Google
Facebook
Twitter
LinkedIn
Link
Respuestas:
-
Fecha: 26-03-2019 05:23:15 total, iva y prima los tienes como <span> y deberían ser <input> para que se envíen en la petición post, si haces algo como die(var_dump($_POST)); veras que no estas recibiendo esos valores. Votos: 1 - Link respuesta
-
Fecha: 26-03-2019 06:18:41 Pero si lo pongo como <input> no me genera automáticamente el resultado y si los dejo como <span> no me guarda nada en la base de datos ¿que necesito hacer para que me guarde los datos generados? Votos: 0 - Link respuesta
-
Fecha: 27-03-2019 02:57:42 Te da error porque esas variables post no existen.
Deben ser input y no le puedes asignar el valor con innerHTML, debe ser con value:
document.getElementById("id").value = valor; Votos: 1 - Link respuesta -
Fecha: 27-03-2019 06:26:45 Entonces quedaría algo así?
<?php if ($_SERVER["REQUEST_METHOD"] == "POST") { $poliza = $_POST["poliza"]; $cuota = $_POST["cuota"]; $prima = $_POST["prima"]; $iva = $_POST["iva"]; $total = $_POST["total"]; if($cliente == 'X'){ $cliente =''; }else{ query("INSERT INTO merca (idViaje, idCliente, Cliente, rfc, moneda, mercancia, importe, TipoOperacion, FechaAlta, detalles, TipoTransporte, FechaSalida, FechaLlegada, folio, porigen, eorigen, corigen, pdestino, edestino, cdestino, poliza, cuota, prima, gastosexp, iva, total) VALUES ('".$idCliente."','".$idCliente."', '".$cliente."', '".$rfc."', '".$moneda."', '".$mercancia."', '".$importe."', '".$tipoOperacion."', '".$fechaAlta."', '".$detalles."', '".$tipoTransporte."', '".$fechaSalida."', '".$fechaLlegada."', '".$folio."','".$porigen."','".$eorigen."', '".$corigen."', '".$pdestino."', '".$edestino."', '".$cdestino."', '".$poliza."', '".$cuota."', '".$prima."', '".$gastosexp."', '".$iva."', '".$total."')"); } } ?> <div class="hr-line-dashed"></div> <div class="form-group"> <h3 style="margin-left:20px;">Informacion de emision</h3> <label class="col-sm-2 control-label">Poliza</label> <div class="col-sm-2"><input type="text" name="poliza" class="form-control m-b"></div> <label class="col-sm-2 control-label">Cuota Base (%)</label> <div class="col-sm-2"><input id="valor2" type="number" onkeyUp="calcular();" name="cuota" class="form-control m-b"></div> <label class="col-sm-2 control-label">Prima Neta</label> <div class="col-sm-2"><input id="result" type="number" name="prima" class="form-control m-b"></div> <label class="col-sm-2 control-label">Gastos de Expedicion</label> <div class="col-sm-2"><input type="text" name="gastosexp" class="form-control m-b"></div> <label class="col-sm-2 control-label">IVA (16%)</label> <div class="col-sm-2"><input id="resultado3" type="hidden" name="iva" class="form-control m-b"></div> <label class="col-sm-2 control-label">Total</label> <div class="col-sm-2"><input id="resulta2" type="hidden" name="total" class="form-control m-b"></div> </div> <script> function calcular(){ //Obtienes el valor var valor = document.getElementById("id").value = "valor"; var valor2 = document.getElementById("id").value = "valor2"; //Tambien se modifican estos? var result= document.getElementById('result'); var total= document.getElementById('total'); //Operaciones var descuento = parseInt(valor)*valor2/10000; var iva = parseInt(valor)*valor2*1.16/10000; //agrega los resultados al DOM result.value = + descuento; resulta2.value = + iva.toFixed(2); resultado3.value = iva.toFixed(2) - descuento.toFixed(2); } </script>Votos: 0 - Link respuesta -
Fecha: 01-04-2019 03:09:56 amigo has el calculo antes del query, declara las variables si tienes los otro datos Votos: 0 - Link respuesta
-
Fecha: 01-04-2019 05:05:49 Primeramente declara tus variables a 0
$prima = 0;
$iva = 0;
$total = 0;
Si NO puedes utilizas isset() entonces:
if(isset($_POST['prima']) && !empty($_POST['prima'])) {
$prima = $_POST['prima'];
} else { $prima = 0;}
Has esto para iva y total.
Despues envia el error si te da otro Votos: 0 - Link respuesta
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
