繁体   English   中英

将细枝变量作为javascript函数的参数传递

[英]pass a twig variable as a parameter for a javascript function

我有一个数据表,需要通过t.row.add()动态添加行,该表由4列组成,其中之一具有内部按钮,这些按钮是Show&Edit,并且它们需要{{行。 id}},因此可以显示或编辑它们,问题是我不知道如何获取twig变量的工作原理。 这是我的表格代码:

<table class="table table-striped table-bordered table-hover" id="sample_2">
    <thead>
        <tr>
            <th class="table-checkbox noprint" style="text-align:center;">
                <input type="checkbox" class="group-checkable" data-set="#sample_2 .checkboxes" disabled/>
            </th>
            <th width="40%" style="text-align:center;">
                Valoraciones
            </th>
            <th width="20%" style="text-align:center;">
                Estado
            </th>
            <th width="20%" style="text-align:center;" class="noprint">
                Acciones
            </th>
        </tr>
    </thead>
    <tbody>
        {% for valoracion in valoracion %}
        <tr class="odd gradeX" id="fila{{ valoracion.id }}">
            <td class="noprint">
                <input type="checkbox" class="checkboxes" disabled/>
            </td>
            <td style="text-align:center;" id="valoracion">
                {{ valoracion.descripcion }}
            </td>
            {% if valoracion.enabled == 1 %}
            <td style="text-align:center;" id="estadoValEnable">Activo</td>
            {% else %}
            <td style="text-align:center;" id="estadoValEnable">Inactivo</td>
            {% endif %}
            <td style="text-align:center;" class="noprint">
                <a class="btn btn-sm default" data-toggle="modal" onclick="showMantenimientoValoracion({{valoracion.id}})">Ver</a>
                <a class="btn btn-sm blue" data-toggle="modal" onclick="editMantenimientoValoracionDetails({{valoracion.id}})">Editar</a>
            </td>
        </tr>
        {% endfor %}
    </tbody>
</table>

这是创建新行的操作(创建操作位于模式视图中):

function sendDataCreateValoracionDetails() {
    if ($('#CrearValoracionMantenimiento').val() == "") {
        Notificacion("error", "La descripión de la competencia no puede estar vacía");
        $('#CrearValoracionMantenimiento').focus();
    } else {
        $.blockUI({
            baseZ: 20000,
            message: '<h4><img src="{{ asset('
            assets / global / plugins / cubeportfolio / cubeportfolio / img / cbp - loading.gif ') }}" /> Guardando datos, por favor espere...</h4>'
        });
        var form = document.getElementById("formCreateMantenimientoValoracionDetails");
        var formData = new FormData(form);
        $.ajax({
            url: '{{ path('
            createValoracionMantenimiento ') }}',
            type: 'POST',
            data: formData,
            cache: false,
            contentType: false,
            processData: false,
            success: function(returndata) {
                if (returndata.success == true) {
                    $.unblockUI();
                    $('#crearValoracion').modal('hide');
                    Notificacion("success", "Valoración RP", "Los datos se han guardado correctamente.");

                    if ($('#EstadoValoracion').attr('checked')) {
                        var status = "Activo";
                    } else {
                        var status = "Inactivo";
                    }
                    $(document).ready(function() {
                        var t = $('#sample_2').addClass('centro').DataTable();

                        $("#sample_2").each(function() {
                            t.row.add([
                                '<tr>' +
                                '<td><input type="checkbox" class="checkboxes" disabled/></td>',
                                '<td>' + ($("#CrearValoracionMantenimiento").val()) + '</td>',
                                '<td>' + status + '</td>',
                                '<td ><a class="btn btn-sm default" data-toggle="modal" onclick="showMantenimientoValoracion(' {
                                    {
                                        valoracion.id
                                    }
                                }
                                ')">Ver</a><a class="btn btn-sm blue" data-toggle="modal" onclick="editMantenimientoValoracionDetails(' {
                                    {
                                        valoracion.id
                                    }
                                }
                                ')">Editar</a></td></tr>',

                            ]).draw(false);

                        });
                    });


                } else {
                    if (returndata.success == false) {
                        $.unblockUI();
                        Notificacion("error", "Valoración RP", "Existe una valoración igual.");
                    }
                }
            },
            error: function(XMLHttpRequest, textStatus, errorThrown) {
                Notificacion("error", "Valoración RP", "Ha existido un problema y no se ha podido crear la valoración.");
                $.unblockUI();
            }
        });
    }
}

这些是我的按钮:

<a class="btn btn-sm default" data-toggle="modal" onclick="showMantenimientoValoracion('{{ valoracion.id }}')">Ver</a>

<a class="btn btn-sm blue" data-toggle="modal" onclick="editMantenimientoValoracionDetails('{{ valoracion.id }} ')">Editar</a>

这些是我需要在函数内部传递的细枝参数:

onclick="showMantenimientoValoracion('{{ valoracion.id }}') /// 
onclick="editMantenimientoValoracionDetails('{{ valoracion.id }} ')`

这是功能代码:

if ($('#EstadoValoracion').attr('checked')) {
    var status = "Activo";
} else {
    var status = "Inactivo";
}
$(document).ready(function() {
    var t = $('#sample_2').addClass('centro').DataTable();

    $("#sample_2").each(function() {
        t.row.add([
            '<tr>' +
            '<td><input type="checkbox" class="checkboxes" disabled/></td>',
            '<td>' + ($("#CrearValoracionMantenimiento").val()) + '</td>',
            '<td>' + status + '</td>',
            '<td ><a class="btn btn-sm default" data-toggle="modal" onclick="showMantenimientoValoracion(' {
                {
                    valoracion.id
                }
            }
            ')">Ver</a><a class="btn btn-sm blue" data-toggle="modal" onclick="editMantenimientoValoracionDetails(' {
                {
                    valoracion.id
                }
            }
            ')">Editar</a></td></tr>',

        ]).draw(false);

    });
});

感谢大家 :)

树枝变量可以用.twig扩展到文件名readed结束,当我需要使用javascript函数内的变量树枝,我的文件里面树枝创建它。 没有别的办法了。

只需删除树枝变量中的引号-

onclick="showMantenimientoValoracion('{{ valoracion.id }}')

应该

onclick="showMantenimientoValoracion({{ valoracion.id }})

然后在您的javascript函数中添加参数-

function sendDataCreateValoracionDetails(valoracion_id) {
    console.log(valoracion_id)
    // Your code goes here
}

这应该做。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM