将变量值从PHP传递到Ajax并在HTML中更改属性值

时间:2017-01-31 06:50:48

标签: php ajax

我的PHP将此数据返回给Ajax ......

echo $data6['favorite_properties_id'];

我在一个函数中更新它并尝试使用以下html和jquery将其发送给另一个函数。

<a href="#"><img class="<?php if($favorite == 1){ echo 'alreadyfavorite';} else { echo 'addtofavorite';} ?>" pid="<?php echo $propertyid; ?>" fpid="<?php while($data5=$select5->fetch()){echo $data5['favorite_properties_id'];} ?>" src="../images/system/addtofavorite.png"></a>

这是我的jquery ......

    $('.alreadyfavorite1').click(function() {
        event.preventDefault();
        var del_id = $(this).attr('fpid');
        var $ele = $(this).parent().parent().parent();
        var reference = this;

        $.ajax(
        {
            type: 'POST',
            url: '../controllers/favoritesaddremove.php',
            data: 

            {
                del_id: del_id
            },
            success: function(data)
            {
            $ele.fadeOut(1000).delay(1000).remove(1000);
            }

        });
    });


// On Search Property Results Page - Add to Favorite Button (Heart)

    $('.addtofavorite').click(function() {
        event.preventDefault();
        var ins_id = $(this).attr('pid');
        var del_id = $(this).attr('fpid');
        var reference = this;
        /* alert(del_id);
        alert(ins_id); */

        $.ajax(
        {
            type: 'POST',
            url: '../controllers/favoritesaddremove.php',
            data: 

            {
                ins_id: ins_id
            },
            success: function(data)
            {
                $(reference).toggleClass("addtofavorite alreadyfavorite");
                $('.alreadyfavorite').attr('fpid', data);

            }
        });
    });

第二个功能不起作用,但如果我刷新页面,那么第二个功能正在运行......

1 个答案:

答案 0 :(得分:0)

首先为图片指定some id并将fpid更改为data-fpid(数据属性):

<a href="#"><img class="asdasd" id="aid" data-fpid="something"></a>

在你的成功中尝试:

success: function(data)
            {
                $('#aid').data('fpid', data); //this should update the value in data-fpid
           }