该代码来自我制作的音乐商店的购物车。 问题是我需要检查我在购物车中选择的数量是否有现货。 它有效,但如果用户更改输入数字中的数量,则按钮pagar(pay)不起作用。 如果我重新加载页面,它可以工作,但我需要不重新加载就可以。 代码:

$("#pagar").click(function() {
  var tt_precio = $("#t_compra").text();
 //solo cojo el precio tt y le quito el €;

 var tt_precio = tt_precio.split(" ")[4];
 var tt_precio = tt_precio.slice(0, -1);
 var precios = [];

 var fecha = new Date();

 var date =
   fecha.getFullYear() +
  "/" +
  Number(fecha.getMonth() + 1) +
  "/" +
 fecha.getDate();

 $("[id*=precios]").each(function() {
 var p = $(this)
  .text()
  .slice(0, -1);
precios.push(p);
});
var cantidades = [];
$("[type = number]").each(function() {
cantidades.push(Number($(this).val()));
});
var referencias = [];
$("[id*=referencias]").each(function() {
referencias.push($(this).text());
});
var nombres = [];
$("[id*=nombres]").each(function() {
nombres.push($(this).text());
});

var datos = {
precios: JSON.stringify(precios),
cantidades: JSON.stringify(cantidades),
referencias: JSON.stringify(referencias),
nombres: JSON.stringify(nombres),
tt_precio: tt_precio,
fecha: date
};
$.ajax({
type: "post",
data: datos,
url: "compra.php",
success: function(vuelta) {
  alert(vuelta);
  window.location.href = "/AccesoDatos/index.php";
}
});
});

$("seguir")

//cambiar precios
$("input").change(function() {
var valor = $(this).val();
var id = $(this).attr("id");
//para eliminar el simbolo del €
var precio = $("#precios" + id)
.text()
.slice(0, -1);
var datos = {
cantidad: valor,
referencia: id,
precio: precio
};

$.ajax({
type: "post",
data: datos,
url: "modificarCantidades.php",
success: function(datos) {
  if (datos == -1) {
    $("#span" + id).html("No hay suficientes unidades");
  } else {
    if (datos == 0) {
      $("#fila" + id).remove();
      $("#t_compra").html("0€");
      $("#precio").html("0");
    } else {

      $("#span" + id).html("");
      var precio = $("#precios" + id)
        .text()
        .slice(0, -1);
      var cantidad = datos;
      var total = precio * cantidad;
      $("#total" + id).text(total + "€");
      //alert(total);
      var total_precio = 0;
      var total_Cantidad = 0;

      // coge todos los elementos que contienen en el id la palabra total y suma su valor
      $("[id*=total]").each(function() {
        var p = Number(
          $(this)
            .text()
            .slice(0, -1)
        );
        total_precio += p;
      });
      //coge los inputs number para sumarlos
      $("[type = number]").each(function() {
        var c = Number($(this).val());
        total_Cantidad += c;
      });

      //meto los valores nuevos en su sitio;   --> en ajax hay que modificar el array de sesiones.
      $("#unidades").html(total_Cantidad);
      $("#precio").html(total_precio);
      $("#t_productos").html(
        "<strong>Total productos:</strong>" + total_Cantidad + "UDS"
      );
      $("#t_compra").html(
        "<strong>Total de la compra:</strong>" + total_precio + "€"
      );
    }
  }
}
});
});

它工作的php文件:

<div class="card">
 <div class="card-header">
 <h4>Detalle del Carrito</h4>
  </div>
  <div class="card-body">
  <!--meter una puta tabla -->
  <table id="tabla_productos">
  <tr>
    <th>Contador</th>
    <th>Referencia</th>
    <th>Nombre</th>
    <th>Precio</th>
    <th>Cantidad</th>
    <th>TOTAL</th>
  </tr>


  <?php
  session_start();
  include 'conexion.php';
  $i = 1;

  //
  $valores = array_count_values($_SESSION['productos']);

  //Crea un array a partir de otro pero solo con sus elementos unicos.
  $unico = array_unique($_SESSION['productos']);
  //recorro el array unico
  foreach ($unico as $producto) {
    $consulta = $mysqli->query("select * from producto where referencia = $producto");
    $row = $consulta->fetch_assoc();
    $p = $row['precio'];
    $u = $valores[$producto];
    $precio_linea = $p * $u;
    ?>
    <tr id="fila<?php echo $row['referencia']; ?>">
      <td style="width:20%"><strong>Producto <?php echo $i; ?></strong> </td>
      <td id="referencias<?php echo $row['referencia']; ?>" style="width:10%"><?php echo $row['referencia']; ?></td>
      <td id="nombres<?php echo $row['referencia']; ?>" style="width:15%"><?php echo $row['nombre']; ?></td>
      <td id="precios<?php echo $row['referencia']; ?>" style="width:20%"> <?php echo $row['precio']; ?> €</td>
      <td style="width:20%"><input id="<?php echo $row['referencia']; ?>" class="<?php echo $i; ?>" style="width:50px" type="number" value="<?php echo $valores[$producto]; ?>"><br><span id="span<?php echo $row['referencia']; ?>" style="color:red"></span></td>
      <td id="total<?php echo $row['referencia']; ?>" style="width:15%"><?php echo $precio_linea; ?> €</td>
    </tr>
  <?php

    $i++;
  } ?>
  <tr>
    <td colspan="3" id="t_productos"><strong> Total productos:</strong> <?php echo $_SESSION['cantidad']; ?>UDS</td>
    <td colspan="3" id="t_compra"><strong>Total de la compra: </strong><?php echo $_SESSION['precio']; ?>€</td>

  </tr>
</table>
<button id="seguir" type="button" class="btn btn-light"><strong>Seguir Comprando</strong></button>
<button id="pagar" type="button" class="btn btn-info">Pagar</button>
<script src="js/pago.js"></script>
 </div>
</div>

  ask by dario perez translate from so

本文未有回复,本站智能推荐:

关注微信公众号