AJAX在while循环中插入多个记录

时间:2019-09-11 21:04:44

标签: php ajax sql-insert

我有多个产品(比萨饼)记录,通过while循环从数据库中获取。当我通过ajax调用插入第一条记录时,它的工作正常,但是同时单击另一条记录时,它就行不通了。刷新而不插入第二条记录。希望您理解我的问题。 谢谢你

<form action="" method="POST" id="pizza_form" enctype="multipart/form-data">
<input type="hidden" name="product_id" id="product_id" value="<?php echo $product_id; ?>">
<input type="hidden" id="type" name="type" value="pizza">
<select class="form-control" id="a_set_of_values" name="a_set_of_values" required >

    <?php

      $q = "SELECT * FROM size WHERE product_id='$product_id'";
      $r = mysqli_query($con, $q);

      while($rows=mysqli_fetch_array($r)){
            $size_id = $rows['size_id'];
            $size = $rows['size']; 
            $price = $rows['price'];
    ?>

  <option value="<?php echo $size_id;?> & <?php echo $price; ?>"><?php echo $size;?> : Rs <?php echo $price;?></option>

    <?php } ?>

   </select>
   <button class="read_mor_btn" type="submit" name="submit" title="Add to Cart"><i class="fa fa-shopping-cart"></i>Add to Cart</button>

   </form>

AJAX呼叫

 <script type="text/javascript">
 $(document).ready(function(e) {
 $('#pizza_form').on('submit', function(e) {
    e.preventDefault();

      $.ajax({
            url: "ajax/pizza/insert_ajax.php",
            type: "POST",
            data: new FormData(this),
            contentType: false,
            cache: false, 
            processData:false,

            success: function(data){
                $("#success").show(data);
            },
        });    
      });
    });
 </script>     

ajax / pizza / insert_ajax.php

    $ip_address = getRealIpAddr();
    $product_id = $_POST['product_id'];
    $type = $_POST['type'];

    //Get two values from select/option

    $explode_fun = $_POST['a_set_of_values'];
    $new_data = explode(' ', $explode_fun);

    $size_id = $new_data[0];
    $price = $new_data[2];

     $insert = "INSERT INTO cart(product_id,size_id,product_price,ip_address,type)VALUES('$product_id','$size_id','$price','$ip_address','$type')";
    $run2 = mysqli_query($con, $insert);

    if ($run2===TRUE) {

    echo json_encode(array("statusCode"=>200));
    } 
    else 
    {
    echo json_encode(array("statusCode"=>201));
    }
        }

0 个答案:

没有答案