添加心愿单按钮到 Virtuamart 产品列表

Add wishlist button to Virtuamart product list

我正在使用 1.Joomla 3.4.4 2.虚拟超市 3.0.9

并且我想使用 Virtuamart 中产品子布局的发送数据,并使用 ajax 将数据发送到控制器。

var url = "?";
jQuery(document).ready(function() {
   jQuery( ".wishlist-btn" ).click(function() {
    var productid = this.id;
    var userid = jQuery('input#user_id').val();
     var fav = {
            Productid: productid,
            Userid:userid
        }


    jQuery.ajax({
            url: url,
            type: "POST",
            data: { json: JSON.stringify(fav) },
            dataType: 'json',
contentType: 'application/json; charset=utf-8',
            success: function(data) {
                alert(data);
            }
        });


});

但是我不知道应该在哪里写PHP代码,以及我的AJAX请求中的URL是什么。 我想发送个人资料 ID 和用户 ID 以添加到心愿单数据库中。 我在

中创建了一个 PHP 文件

com_virtuamar/controller/ajax.php

$json = $_POST['json'];
$person = json_encode($json);
echo $person->Userid;

在我的 AJAX 请求中 URL 我使用了

/components/com_virtuemart/controllers/ajax.php

但我认为控制器中的地址和用法完全不正确,而且我不知道为什么 userid 没有 return

您的 Ajax 请求有误。对于发送到 PHP 文件,删除 data: { json: JSON.stringify(fav) } 并替换为:

jQuery.ajax({
    url: url,
    type: "POST",
    data: JSON.stringify(fav),
    dataType: 'json',
    contentType: 'application/json; charset=utf-8',
    success: function(data) {
        alert(data);
    }
});

并在您的 php 文件中替换:

$person = json_encode($json);

来自

$person = json_decode($json);

如果您想直接在 Joomla 会话上访问以获得 ID 或密码用户,您可以检查

JFactory::getUser();

请看更多:https://docs.joomla.org/JFactory/getUser