我如何在单击时将带有ajax的html的数据属性发送到some.php页面?

弗拉基米尔·米哈伊洛维奇(Vladimir Mijajlovic)

在这种情况下,我要从数据库中获取产品ID,并将其放入data-idproduct中:

<a class="cart" href="" data-idproduct="<?php echo $itemArtikal['id_product'] ?>">Add to Cart</a>

单击该“添加到购物车”按钮,我将获取存储的data-idproduct并将其发送到cart-process.php页面。

这是我的main.js代码:

$(document).ready(function (){
$('.cart').click(function (e) {
    e.preventDefault();
    let dataIdArtikla = $(this).data('idproduct');

    $.ajax({
        method: "post",
        url: "models/cart-process.php",
        contentType: "application/json; charset=utf-8",
        data: JSON.stringify({
            "idProd" : dataIdArtikla
        }),
        success: function (response) {
            alert(response);
        },
        error: function (xhr, textStatus) {
            alert("oh no: "+ " " + xhr.status+ " " +textStatus.responseText);
        }
    })
});

})

这是基本的cart-process.php代码:

$idProduct = $_POST['idProd'];

header('Content-type: application/json');
echo json_encode([
    'id_product' => $idProduct
]);

它始终返回错误,并且JSON的响应始终为null来自“网络”选项卡的响应:

<br />
<b>Warning</b>:  Undefined array key "idProd" in <b>C:\xampp\htdocs\freshshop01\models\cart-process.php</b> on line <b>5</b><br />
{"id_artika":null}

通常,其背后的想法是,当用户单击“添加到购物车”按钮时,将产品添加到购物车中。我试图传递被点击产品的ID,然后在cart-process.php中显示具有相同ID的整个产品信息。

我不知道如何解决它,有人可以帮忙吗?

编辑:

这是我的新的cart-process.php文件:

<?php
$idArtikla = $_POST['idProd'];

if(isset($idArtikla)) {

require_once "../config/connection.php";
session_start();

$_SESSION['idArtikla'] = $idArtikla;

$queryCart = $conn -> prepare('SELECT * FROM artikal WHERE id_artikal = :idArtikal');
$queryCart->bindParam(":idArtikal", $idArtikla);

try {
    $queryCart->execute();
    $resultCart = $queryCart->fetchAll(PDO::FETCH_ASSOC);
} catch (PDOException $exception) {
    echo json_encode(['error' => $exception->getMessage()]);
}
header('Content-type: application/json');
echo json_encode($resultCart);

}

和新的main.js文件:

$(document).ready(function (){
$('.cart').click(function (e) {
    e.preventDefault();
    let dataIdArtikla = $(this).data('idartikla');

    $.ajax({
        method: "post",
        url: "models/cart-process.php",
        dataType: 'json',
        data: {
            "idProd" : dataIdArtikla
        },
        success: function (response) {
            console.log("Success message: " + response);
        },
        error: function (xhr, textStatus) {
            alert("oh no: "+ " " + xhr.status+ " " +textStatus.responseText);
        }
    })
});

})

响应现在返回整个对象,但不会成功。输入错误。我怀疑对象到json转换有问题,反之亦然,但不确定在这里到底有什么问题?这是响应和请求的模样:

要求

回复

帖子有点长,我请您帮忙。

麦克斯普

传递数据时,您必须向JSON添加密钥。代替contentType,使用dataType:'json'告诉jQuery期望什么。

$.ajax({
    method: "post",
    url: "models/cart-process.php",
    dataType: 'json',
    data: {'json':JSON.stringify({"idProd" : dataIdArtikla})},
    success: function (response) {
        alert(response);
    },
    error: function (xhr, textStatus) {
        alert("oh no: "+ " " + xhr.status+ " " +textStatus.responseText);
    }
})

在php中,您可以像这样访问元素:

echo (json_decode($_POST['json'])->idProd);

一种更简单的方法是只传递数据而不进行序列化

$.ajax({
    method: "post",
    url: "models/cart-process.php",
    data: {"idProd" : dataIdArtikla},
    success: function (response) {
        alert(response);
    },
    error: function (xhr, textStatus) {
        alert("oh no: "+ " " + xhr.status+ " " +textStatus.responseText);
    }
})

然后,您可以直接通过$ _POST访问idProd:

echo ($_POST['idProd']);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我如何在单击时将带有ajax的html的数据属性发送到some.php页面?

来自分类Dev

如何在html页面上显示从android应用发送到php的数据?

来自分类Dev

如何将数据从php页面发送到ajax页面

来自分类Dev

Chrome扩展程序:单击按钮后如何将html表单数据发送到php页面,该页面重定向到该php页面

来自分类Dev

无法将带有Ajax的文件发送到php文件

来自分类Dev

无法将带有Ajax调用的C ++程序发送到php

来自分类Dev

将带有 Javascript 变量的 HTML 表单发送到 PHP -> Mysql

来自分类Dev

当我单击一个按钮时,它没有通过 ajax jquery 将数据发送到 changePassword.php

来自分类Dev

如何使用Ajax将输入文件数据值发送到php页面

来自分类Dev

如何使用Ajax将输入文件数据值发送到php页面

来自分类Dev

如何通过 Ajax 将多个数据字段发送到 php 页面?

来自分类Dev

如何防止他人将自己的数据发送到我的php页面?

来自分类Dev

如何将html数据发送到另一个php页面

来自分类Dev

将数据发送到 PHP 弹出页面

来自分类Dev

无法将表单数据发送到 PHP 页面

来自分类Dev

如何将jQuery数组发送到PHP页面

来自分类Dev

如何在不重新加载页面的情况下使用AJAX将表单值发送到php?

来自分类Dev

使用ajax将数据发送到php页面并获取响应并在字段中显示

来自分类Dev

ajax GET无法使用jtable将数据发送到php页面

来自分类Dev

字符串数据未通过 $.ajax 调用发送到 php 页面

来自分类Dev

HTML表单将数据发送到PHP表单,而无需离开当前页面

来自分类Dev

如何将ajax中的json对象发送到php页面

来自分类Dev

HTML / PHP:如何有多种形式将信息发送到同一页面?

来自分类Dev

我想知道,如何将表单值从wordpress页面发送到php文件

来自分类Dev

如何显示.php页面?

来自分类Dev

如何不使用浏览器将数据发送到PHP页面?

来自分类Dev

如何使用PHP将数据发送到另一个页面?

来自分类Dev

PHP将带有标头的邮件发送到Gmail

来自分类Dev

javascript 不工作的 HTML 表单 - AJAX POST 数据没有发送到 PHP

Related 相关文章

  1. 1

    我如何在单击时将带有ajax的html的数据属性发送到some.php页面?

  2. 2

    如何在html页面上显示从android应用发送到php的数据?

  3. 3

    如何将数据从php页面发送到ajax页面

  4. 4

    Chrome扩展程序:单击按钮后如何将html表单数据发送到php页面,该页面重定向到该php页面

  5. 5

    无法将带有Ajax的文件发送到php文件

  6. 6

    无法将带有Ajax调用的C ++程序发送到php

  7. 7

    将带有 Javascript 变量的 HTML 表单发送到 PHP -> Mysql

  8. 8

    当我单击一个按钮时,它没有通过 ajax jquery 将数据发送到 changePassword.php

  9. 9

    如何使用Ajax将输入文件数据值发送到php页面

  10. 10

    如何使用Ajax将输入文件数据值发送到php页面

  11. 11

    如何通过 Ajax 将多个数据字段发送到 php 页面?

  12. 12

    如何防止他人将自己的数据发送到我的php页面?

  13. 13

    如何将html数据发送到另一个php页面

  14. 14

    将数据发送到 PHP 弹出页面

  15. 15

    无法将表单数据发送到 PHP 页面

  16. 16

    如何将jQuery数组发送到PHP页面

  17. 17

    如何在不重新加载页面的情况下使用AJAX将表单值发送到php?

  18. 18

    使用ajax将数据发送到php页面并获取响应并在字段中显示

  19. 19

    ajax GET无法使用jtable将数据发送到php页面

  20. 20

    字符串数据未通过 $.ajax 调用发送到 php 页面

  21. 21

    HTML表单将数据发送到PHP表单,而无需离开当前页面

  22. 22

    如何将ajax中的json对象发送到php页面

  23. 23

    HTML / PHP:如何有多种形式将信息发送到同一页面?

  24. 24

    我想知道,如何将表单值从wordpress页面发送到php文件

  25. 25

    如何显示.php页面?

  26. 26

    如何不使用浏览器将数据发送到PHP页面?

  27. 27

    如何使用PHP将数据发送到另一个页面?

  28. 28

    PHP将带有标头的邮件发送到Gmail

  29. 29

    javascript 不工作的 HTML 表单 - AJAX POST 数据没有发送到 PHP

热门标签

归档