Yii2提交与Ajax的链接

时间:2018-08-01 13:46:29

标签: ajax yii2

我正在尝试为Yii2中的内容创建投票,所以我试图使用“ a”标签和小部件使用Ajax插入数据,但使用ajax则无法正常工作,如果没有ajax则可以正常运行。但是当我使用Ajax时,它不起作用,并且控制台中没有错误。 我的查看代码是:

<script type="text/javascript">
    $('document').ready(function(){
        $('#btn-vote-up' + <?= $pst_id ?>).on("click", function(e){
            $.ajax({
                type: "POST",
                data: {"value" : "Like"},
                success: function(msg) {
                    console.log (<?= $pst_id ?>);
                    $('#note-up' + <?= $pst_id ?>).load(' #note-up' + <?= $pst_id ?>);
                }               
            });
            e.preventDefault();
        });
    });
</script>


    <?= Html::a('<i class="ly-ic-favorite-plus"></i>', '#', [
                'class' => 'btn-logout',
                'id' => 'btn-vote-up'.$pst_id,
                'data'  => [
                    'params' => [
                        'value' => 'Like',
                        'pstIDL' => $pst_id,
                        ],
                    ],
        ]) ;
    ?>
    <?php yii\widgets\Pjax::begin(['id' => 'note-up'.$pst_id]) ?>
        <span><?= $total_up ?></span>
    <?php yii\widgets\Pjax::end() ?>

我的小部件代码是:

if (Yii::$app->request->post('value') == 'Like')
            {
                $pstIDL = Yii::$app->request->post('pstIDL');

                $modelLIKEPOST = $this->findLikePost($pstIDL);

                AxVotePost::VoteUP($modelLIKEPOST, $this->usr_rid, $this->chn_id, $pstIDL);
                header('Location: ' .Url::current() );
                exit;
            }

1 个答案:

答案 0 :(得分:1)

进行ajax调用时,您没有发送$pstIDL值,而仅发送了value,您可以使用var data=$(this).data('params')来获取pstIDL和{ {1}} value并随通话中的数据一起发送,请参见下文

json