Я создаю простой веб-сайт электронной коммерции, пока собираюсь добавлять товары на карту. Я не смог отправить значения через ajex. Я попытался отправить значения «frmProduct» на страницу «addproduct.php». Пока я проверяю с помощью эха echo $product_name = $_POST['des']; ,echo $price = $_POST['price']; эхо $кол-во= $_POST['кол-во']; только значение 'qty' успешно отправлено, другие поля не отправляются Страница «addproduct.php»
$.ajax({
type: 'GET',
url: 'all_product.php' ,
dataType: 'JSON',
success: function (data) {
for (var i = 0; i < data.length; i++)
{
var price = data[i].price;
var image = data[i].image;
var description = data[i].description;
$("#Products").append("<form class='form-horizontal' id='frmProduct'>" +
"<div class='col-md-4'> " +
"<div class='panel panel-info' id='Products'>" +
"<div class='card-body'>" +
"<div class='panel-heading' id='des' " + "<h4> " + description + "</h4> " +
"<p class='panel-body' id='price'>"+ "<h3> " + price + "</h3> " +
"<p class='panel-body'> " +
"<img class='card-img-top' style='width:150px' height='150px' id='theImg' src='images/" + image + "' /> </p>" +
"<input type='text' name='qty' id='qty'>" +
"</br></br>" +
" <Button type='button' class='btn btn-primary' onclick='addProduct()' >View More</a> " +
"</div> " +
"</div>" +
"</div>" +
" </div>" +
"</form>");
}
},
$.ajax({
type : 'POST',
data : $("#'frmProduct'").serialize(),
url : 'addproduct.php',
dataType : 'JSON',
success : function(data){
}
страница addproduct.php
<?php
include("db.php");
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
echo $product_name = $_POST['des'];
echo $price = $_POST['price'];
echo $qty= $_POST['qty'];
$stmt = $conn->prepare("insert into cart (productname,price,qty)values(?,?,?)");
$stmt-> bind_param("sss",$productname,$price,$qty);
if ($stmt->execute())
{
echo 1;
}
else
{
echo 0;
}
$stmt->close();
}
?>
да сэр как передать значения сэр div class='panel-heading' id='des' " + "<h4> " + description + "</h4> это значение описания
отредактированный код выше
Ваша форма не передает ничего, кроме qty
. Такие элементы, как <div>
, <p>
и т. д., не передаются при отправке формы.
Если вам нужно передать эти значения, не показывая их пользователю в реальном поле ввода, используйте, например, <input type = "hidden" name = "des" value = "123">
.
переменная цена = данные[i].price; изображение var = данные[i].image; var description = данные[i].description; вот как я получаю значения, а затем как перейти в <input type = "hidden" name = "des" value = "123">
"<input type='hidden' name='des' value='" + description + "'>"
$stmt-> bind_param("sss",$productname,$price,$qty); в чем проблема в этой строке, сэр, значения проходят успешно
Это был бы другой вопрос, но я предполагаю, что "sss"
неверен. Этот аргумент передает тип данных. Ваши данные, кажется, имеют одну строку и два числовых значения. Проверьте эта страница для более подробной информации.
Единственный ввод в вашей форме —
qty
. Отсюда:<input type='text' name='qty' id='qty'>
. Вы больше ничего не передаетеaddproduct.php
.