需要能够从yii2中的javascript方法获取返回字符串

时间:2017-06-28 14:01:51

标签: javascript php yii yii2

我正在使用Yii2并且在使用Html :: a -hyperlink时返回要发送的javascript方法的内容时遇到问题

javascipt是​​为了获取复选框的选定值并正确输出。



<script>

    function getNewPermissions() {
        var permissions = '';
        var rows = $(document).find('.permission');
        $.each(rows, function (key, value) {
            if($(value).find('input').prop('checked') == true)
             permissions += value.id+'$&/';
        })
        permissions = permissions.substring(0, permissions.lastIndexOf("$&/"));
        
        return permissions;
    }
</script>
&#13;
echo Html::a(Yii::t('app', 'Edit'), ['permissions/edit' ,'id'=> $name], [
                'class' => 'btn btn-primary',
                'onclick' =>'js:getNewPermissions()',             
                'data-method' => 'post',
                'data' => [ 
                    'params' => ['newPerms'=>'js:getNewPermissions()','_csrf' => Yii::$app->request->csrfToken],
                ],
            ])
&#13;
&#13;
&#13;

在yii1中,从参数中正确读取了值。 无法找到任何来源直接帮助在params中获取js并且onclick确实有效。

1 个答案:

答案 0 :(得分:-1)

在我的项目中使用另一种方式

<a style="float:left;" class="btn btn-success" onclick="myFunction(this)" 
               type="<?php echo $value->id; ?>">
                                </a>

并在布局结束时使用js函数

<script>
            function updateSession(e)
            {
                var csrfToken = $('meta[name="csrf-token"]').attr("content");
                var pid = e.getAttribute('type');
                var key = e.getAttribute('title');
                var pqty = $("#id_" + key).val()

                $.ajax({
                    url: '<?php echo Yii::$app->urlManager->createAbsoluteUrl('/site/updatecard') ?>',
                    type: 'Post',
                    data: {
                        productid: pid,
                        key: key,
                        pqty: pqty,
                        _csrf: csrfToken
                    },
                    success: function (data) {

                        alert(data);
                        $.ajax({
                            url: '<?php echo Yii::$app->urlManager->createAbsoluteUrl('/site/getcard') ?>',
                            type: 'GET',
                            data: {
                                _csrf: csrfToken
                            },
                            success: function (data) {
                                $("#collapseCart").empty();

                                $("#collapseCart").append(data);
                            }
                        });

                        $.ajax({
                            url: '<?php echo Yii::$app->urlManager->createAbsoluteUrl('/site/getcardpage') ?>',
                            type: 'GET',
                            data: {
                                _csrf: csrfToken
                            },
                            success: function (data) {
                                $("#get_card2").empty();

                                $("#get_card2").append(data);
                            }
                        });

                    }
                });
            }
</script>