Yii2模态与复合键

Yii2 modal with composite key

本文关键字:复合 模态 Yii2      更新时间:2023-09-26

有人能帮我拿复合键吗?我不能正常工作。

function init_click_handlers(){
  $(".button-endereco").click(function(e) {
            var fcodigo = $(this).closest("tr").data("codigo");
            var fcodigopessoa = $(this).closest("tr").data("codigopessoa");
            var map = {codigo: $(this).closest("tr").data("codigo"), codigopessoa: $(this).closest("tr").data("codigopessoa")};
            $.get(
                "update ",
                {
                    codigo: fcodigo
                    codigopessoa: fcodigopessoa
                },
                function (data)
                {
                    $("#endereco-modal").find(".modal-body").html(data);
                    $(".modal-body").html(data);
                    $("#endereco-modal").modal("show");
                }
            );
        });
}
init_click_handlers(); //first run
$("#endereco_id").on("pjax:success", function() {
  init_click_handlers(); //reactivate links in grid after pjax update
});
$url = Yii::$app->urlManager->createUrl('../endereco/update?codigo='.$dataProvider->codigo.'&codigopessoa='.$dataProvider->codigopessoa);

如果您想引用$dataProvider中的数据,您首先需要获得所需的模型。在dataProvider中,所有与您的查询相关的模型都是可用的,您可以从模型数组中获得通过适当索引访问的特定模型,例如:

myModel = $dataProvider->models[yourIndex]
myValue = myModel->myField

在你的例子中,你可以通过这种方式获得

myModel = $dataProvider->models[0]:
myValue = myModel->codigo;

我得到了90%的响应,但无法捕获我的复合密钥(密码,codigopessoa),强制值测试函数,它成功了。所以缺少我得到的列值(复合键)。

function init_click_handlers(){
  $(".button-endereco").click(function(e) {
             fcodigo = $(this).closest("tr").data("codigo");
             fcodigopessoa = $(this).closest("tr").data("codigopessoa");
             $.ajax({
                url: "'.Yii::$app->urlManager->createUrl('endereco/update').'",
                type: "GET",
                data: {"codigo": parseInt(17), "codigopessoa":parseInt(8)},
                dataType: "html",
                success: function(data) {
                        $("#endereco-modal").find(".modal-body").html(data);
                        $(".modal-body").html(data);
                        $("#endereco-modal").modal("show");
                }
            }); 
        });
}
init_click_handlers(); //first run
$("#endereco_id").on("pjax:success", function() {
  init_click_handlers(); //reactivate links in grid after pjax update
});

〔100%工作〕最终得到了它,对于那些想要使用带有复合键的Gridview(kartik)的人来说,代码如下:

function init_click_handlers(){
  $(".button-endereco").click(function(e) {
             chave = $(this).closest("tr").data("key");
             $.ajax({
                url: "'.Yii::$app->urlManager->createUrl('endereco/update').'",
                type: "GET",
                data: {"codigo": parseInt(chave["codigo"]), "codigopessoa":parseInt(chave["codigopessoa"])},
                //data: {keylist: parseInt(keys)},
                dataType: "html",
                success: function(data) {
                        $("#endereco-modal").find(".modal-body").html(data);
                        $(".modal-body").html(data);
                        $("#endereco-modal").modal("show");
                }
            }); 
        });
}
init_click_handlers(); //first run
$("#endereco_id").on("pjax:success", function() {
  init_click_handlers(); //reactivate links in grid after pjax update
});