将愿望清单按钮添加到Virtuamart产品列表

时间:2015-11-05 07:05:10

标签: php jquery joomla3.0 virtuemart

我正在使用  1. Joomla 3.4.4  2. Virtuamart 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 /控制器/ ajax.php

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

和我使用的AJAX请求中的URL

  

/components/com_virtuemart/controllers/ajax.php

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

1 个答案:

答案 0 :(得分:1)

您的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