Problema al insertar
Publicado por Sergio (112 intervenciones) el 05/10/2021 12:59:29
Buenos días. Estoy haciendo una aplicación y estoy intentando insertar registros escribiendo directamente en una tabla. Cuando inserto el primer registro todo ok. Si inserto otro registro, me inserta 2, si vuelvo a insertar otro registro, me inserta 3 y así sucesivamente. Os pongo el código que tengo
Lo primero es la tabla y ahora os pongo el código jquery que hace la llamada ajax
Y ahora os pongo el archivo añadir_linea.php
Espero que me podáis ayudar. Muchas gracias.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<table class="table table-bordered table-responsive w-100 d-block d-md-table mt-0 mr-3" id="tabla_detalle">
<thead style="background-color: blue; color: white; font-weight: bold;">
<tr>
<th class="col-md-6">Descripción</th>
<th>Cantidad</th>
<th>Precio</th>
<th>Subtotal</th>
<th>Editar</th>
<th>Eliminar</th>
</tr>
</thead>
<tbody>
<?php
$sql_pre = "SELECT * FROM presupuestos WHERE id_presupuesto = '".$mostrar['id_presupuesto']."'";
$resultado_pre = mysqli_query($conexion, $sql_pre);
$row=mysqli_fetch_assoc($resultado_pre);
$total_presupuesto = $row['total_presupuesto'];
$sql_detalles = "SELECT * FROM detalles_presupuesto WHERE id_presupuesto = '".$mostrar['id_presupuesto']."' order by id_detalle_presupuesto ASC";
$resultado_detalle = mysqli_query($conexion, $sql_detalles);
while ($mostrar_detalle = mysqli_fetch_assoc($resultado_detalle)){
?>
<tr>
<td id="id_detalle" data-id_detalle="<?php echo $mostrar_detalle['id_detalle_presupuesto'];?>" style="display:none"><?php echo $mostrar_detalle['id_detalle_presupuesto'];?></td>
<td id="descripcion" data-id_descripcion="<?php echo $mostrar_detalle['id_detalle_presupuesto'];?>" contenteditable><?php echo $mostrar_detalle['descripcion'];?></td>
<td id="cantidad" data-id_cantidad="<?php echo $mostrar_detalle['id_detalle_presupuesto'];?>" contenteditable><?php echo $mostrar_detalle['cantidad'];?></td>
<td id="precio" data-id_precio="<?php echo $mostrar_detalle['id_detalle_presupuesto'];?>" contenteditable><?php echo number_format($mostrar_detalle['precio'], 2, ',', '.').'€';?></td>
<td><?php echo number_format($mostrar_detalle['subtotal'], 2, ',', '.').'€';?></td>
<td style="text-align: center;">
<span class="btn btn-warning btn-sm" data-toggle="modal" data-target="#modalEditar"
onclick="agregaFrmActualizardetalle('<?php echo $mostrar_detalle['id_detalle_presupuesto'];?>')">
<span class="fas fa-edit"></span>
</span>
</td>
<td style="text-align: center;">
<span class="btn btn-danger btn-sm" onclick="eliminarDatos('<?php echo $mostrar_detalle['id_detalle_presupuesto'];?>')">
<span class="fas fa-trash-alt"></span>
</span>
</td>
</tr>
<?php
$id_pre=$mostrar['id_presupuesto'];
}
?>
<tr>
<td id="id_pre" style="display:none" data-id_pre="<?php echo $id_pre;?>"></td>
<td id="descripcion_add" contenteditable></td>
<td id="cantidad_add" contenteditable></td>
<td id="precio_add" contenteditable></td>
</tr>
</tbody>
</table>
<span type="button" class="btn btn-success mb-4" id="agregar">Añadir linea <span class="fas fa-plus-circle"></span></span>
Lo primero es la tabla y ahora os pongo el código jquery que hace la llamada ajax
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$(document).on("click", "#agregar", function(e){
e.preventDefault();
var id_presupuesto = $("#id_pre").val();
var descripcion_add = $("#descripcion_add").text();
var cantidad_add = $("#cantidad_add").text();
var precio_add = $("#precio_add").text();
$.ajax({
url: "añadir_linea.php",
method: "POST",
data: {"id_pre":id_presupuesto, "descripcion":descripcion_add, "cantidad":cantidad_add, "precio":precio_add},
success: function(data){
alertify.success(data);
var posicion = $('#id_posicion_presupuesto').val();
load(posicion);
}
})
});
Y ahora os pongo el archivo añadir_linea.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
include "../clases/conexion.php";
$obj= new conectar();
$conexion = $obj->conexion();
$id_pre = $_POST['id_pre'];
$descripcion = $_POST['descripcion'];
$cantidad = $_POST['cantidad'];
$precio = $_POST['precio'];
$precio = (float)$precio;
$cantidad = (int)$cantidad;
$subtotal = $cantidad * $precio;
$sql = mysqli_query($conexion, "INSERT INTO detalles_presupuesto (id_presupuesto, descripcion, cantidad, precio, subtotal) VALUES ('$id_pre',
'$descripcion', '$cantidad', '$precio', '$subtotal')");
if(!$sql){
echo "Error al actualizar los datos" . mysqli_error($conexion);
}else{
echo "Se han actualizado los datos";
}
?>
Espero que me podáis ayudar. Muchas gracias.
Valora esta pregunta


0