Передача значения select в бд
Существует запрос тут при нажатии кнопки он берет значение айди товара и по идее должен брать значение option
$('.add-cart-style-list,.add-cart-style-grid,.add-cart,.random-add-cart').click(function(){ var tid = $(this).attr("tid"); var size = $('#size :selected').text(); $.ajax({ type: "POST", url: "/include/addtocart.php", data: "id="+tid+"&size="+size, dataType: "html", cache: false, success: function(data) { loadcart(); } }); Форма <form method="POST" action="/include/addtocart.php" name="form"> <p>Размер: <select name="size" id="size" > <option value="41">41</option> <option value="42">42</option> <option value="43">43</option> <option value="44">44</option> <option value="45">45</option> </select> </p> </p> </form> и обработчик addtocart.php <?php if($_SERVER["REQUEST_METHOD"] == "POST") { define('myeshop', true); include("db_connect.php"); include("../functions/functions.php"); $id = clear_string($_POST["id"]); $size = (int)$_POST["size"]; $result = mysql_query("SELECT * FROM cart WHERE cart_ip = '{$_SERVER['REMOTE_ADDR']}' AND cart_id_products = '$id'",$link); If (mysql_num_rows($result) > 0) { $row = mysql_fetch_array($result); $new_count = $row["cart_count"] + 1; $update = mysql_query ("UPDATE cart SET cart_count='$new_count' WHERE cart_ip = '{$_SERVER['REMOTE_ADDR']}' AND cart_id_products ='$id'",$link); } else { $result = mysql_query("SELECT * FROM tableproducts WHERE products_id = '$id'",$link); $row = mysql_fetch_array($result); mysql_query("INSERT INTO cart(cart_id_products,cart_price,size,cart_datatime,cart_ip) VALUES( '".$row['products_id']."', '".$row['price']."', '.$size.', NOW(), '".$_SERVER['REMOTE_ADDR']."' )",$link); } } ?>.Но значение $size в обработчике 0 , когда ставлю определенное значение например $size= 42; он все как положено записывает в бд и выводит.Почему не передается методом пост значение селекта? |
<select name="size" id="size" > <option value="41">41</option> <option value="42">42</option> <option value="43">43</option> <option value="44">44</option> <option value="45">45</option> </select> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> <script> $('#size').on('change', function() { alert($('#size').val()); }); </script> |
clear_string($_POST["id"]); - что это?
|
Цитата:
{ $cl_str = strip_tags($cl_str); $cl_str = mysql_real_escape_string($cl_str); $cl_str = trim($cl_str); return $cl_str; } функция удаляет спец символы, пробелы, нулевые знач и теги html. POST_["id"] передает значение айди товара. |
Ну в общем то цифровые достаточно приводить к типу integer, и заключать их в кавычки не нужно.
И все эти запросы можно объединить. |
Часовой пояс GMT +3, время: 03:00. |