select - сохранение выбора в базу

336
05 ноября 2017, 19:23

Здравствуйте, есть страница с товаром, есть такой вот код:

<form action="" method="post">
  <select name="data">
    <option value="S">S</option>
    <option value="L">L</option>
  </select>
</form>
<p id="style-price" >'.group_numerals($row1["price"]).' руб</p>
<a class="add-cart" id="add-cart-view" tid="'.$row1["products_id"].'" ></a>
<p id="content-text">'.$row1["mini_description"].'</p> 

Как сделать так так чтобы выбор из "select" сохранялся в БД в созданную ячейку "size" при нажатии на кнопку add-cart.

Файл js

$('.add-cart-style-list,.add-cart-style-grid,.add-cart,.random-add-cart').click(function(){
    var  tid = $(this).attr("tid");
    $.ajax({
        type: "POST",
        url: "/include/addtocart.php",
        data: "id="+tid,
        dataType: "html",
        cache: false,
        success: function(data) { 
            loadcart();
        }
    });
});
function loadcart(){
    $.ajax({
        type: "POST",
        url: "/include/loadcart.php",
        dataType: "html",
        cache: false,
        success: function(data) {
            if (data == "0"){
                $("#block-basket > a").html("Корзина пуста");
            }else{
                $("#block-basket > a").html(data);
            }  
        }
    });    
}

Файл addtocart.php

<?php
 if($_SERVER["REQUEST_METHOD"] == "POST"){
    define('myeshop', true);    include("db_connect.php");  include("../functions/functions.php");
    $result = mysql_query("SELECT * FROM cart,table_products WHERE cart.cart_ip = '{$_SERVER['REMOTE_ADDR']}' AND table_products.products_id = cart.cart_id_product",$link);
    if (mysql_num_rows($result) > 0){
        $row = mysql_fetch_array($result);
        do{
            $count = $count + $row["cart_count"];    
            $int = $int + ($row["price"] * $row["cart_count"]); 
        }while ($row = mysql_fetch_array($result));
        if ($count == 1 or $count == 21 or $count == 31 or $count == 41 or $count == 51 or $count == 61 or $count == 71 or $count == 81) ( $str = ' товар');
        if ($count == 2 or $count == 3 or $count == 4 or $count == 22 or $count == 23 or $count == 24 or $count == 32 or $count == 33 or $count == 34 or $count == 42 or $count == 43 or $count == 44 or $count == 52 or $count == 53 or $count == 54 or $count == 62 or $count == 63 or $count == 64) ( $str = ' товара');
        if ($count == 5 or $count == 6 or $count == 7 or $count == 8 or $count == 9 or $count == 10 or $count == 11 or $count == 12 or $count == 13 or $count == 14 or $count == 15 or $count == 16 or $count == 17 or $count == 18 or $count == 19 or $count == 20 or $count == 25 or $count == 26 or $count == 27 or $count == 28 or $count == 29 or $count == 30 or $count == 35 or $count == 36 or $count == 37 or $count == 38 or $count == 39 or $count == 40 or $count == 45 or $count == 46 or $count == 47 or $count == 48 or $count == 49 or $count == 50 or $count == 55 or $count == 56 or $count == 57 or $count == 58 or $count == 59 or $count == 60 or $count == 65) ( $str = ' товаров');
        if ($count > 81){
            $str=" тов";
        }
        echo '<span>'.$count.$str.'</span> на сумму <span>'.group_numerals($int).'</span> руб';
    }else{
        echo '0';
    }
 }
 ?>
Answer 1

Измените ваш HTML

<form class="add_product_form" action="" method="post"> 
    <select class="size_product" name="data">
        <option value="S">S</option>
        <option value="L">L</option>
    </select>
    <p id="style-price" >'.group_numerals($row1["price"]).' руб</p>
    <a class="add-cart" id="add-cart-view"  data-id="'.$row1["products_id"].'" ></a>
    <p id="content-text">'.$row1["mini_description"].'</p> 
    <input type="submit" value="OK">  
</form>

Измените файл JS

$(document).on('submit', '.add_product_form', function(e){ 
    e.preventDefault();
    var  size = ( $(this).parents().find(".size_product").val()!='') ? $('.size_product').val() : 'Пусто';
    var  tid =  $(this).parents().find("a.add-cart").data("id"); 
    $.ajax({
        type: "POST",
        url: "/include/addtocart.php",
        data: {idAjax:tid, sizeAjax:size}, 
        cache: false,
        dataType: "html",
     success: function(data) {  
          console.log(data);
          loadcart(); 
     }
}); 

Теперь вам нужно написать SQL запрос для добавление значений в Базу данных, на снование вашей таблицы.

Измените или добавьте код в файл где идет добавление в Базу Данных.

Пример кода SQL на добавление данных в бд

$product_id = (isset($_POST['idAjax'])) ? $_POST['idAjax'] : '0'; //ID товара с ссылки "add-cart".
$size = (isset($_POST['sizeAjax'])) ? $_POST['sizeAjax']: 'Пусто'; //Переменая со значением select.
mysql_query("INSERT INTO `cart`(`cart_id`, `cart_id_product`, `cart_price`,  `cart_datetime`, `cart_ip`, `size`) 
        VALUES (null, '".$product_id."', '".$row['price']."',  NOW(), '".$_SERVER['REMOTE_ADDR']."', '".$size."')" ,$link);

Результат добавления SELECT и id средствами Ajax:

READ ALSO
Проблема с удалением файла в php

Проблема с удалением файла в php

Не могу удалить 2 файла, путь которых указан в БД, вот код:

263
Вопрос про вывод описания и изображения дочерних рубрик

Вопрос про вывод описания и изображения дочерних рубрик

На сайте есть рубрика "Книги"У которой две дочерние рубрики: "Отечественные книги", "Иностранные книги"

300
Подскажите пожалуйста. [требует правки]

Подскажите пожалуйста. [требует правки]

Подскажите пожалуйстаНеобходимо создать файл в php с праздничными днями(9 мая, 23 февраля, 8 марта, 4 ноября ), проверяя дату сравнить совпадает...

203