使用ajax,jquery和symfony2在表中显示数组数据

时间:2016-12-19 15:15:49

标签: javascript jquery ajax symfony

我想在我的twig文件的表格中使用jquery和ajax显示数据。

ajax请求向控制器发送了一个post请求,控制器试图从数据库中的csv文件插入severl行,但是无法插入一些错误数据,我想使用ajax将这些数据显示给客户端jQuery的。

数据应显示在我的twig文件的表格中。到现在为止,我可以返回数据,但我无法在表格中显示数据。

这是我的ajax代码:

jQuery('#formulaire').ajaxForm({
    beforeSubmit: function (arr, $form, options) {
        var ids = [];
        var values=[];
        $('li.ui-selected').each(function(){
            ids.push(this.id);
            values.push(this.value);
        });

        arr.push({name:'hide', value:(ids)})
        arr.push({name:'valueschamps', value:(values)});
    },
    success: function (result, request) {
        var parsedData =JSON.parse(result);
        jQuery('#data').append(parsedData.data);
        //jQuery('#data').html(parsedData.data);

    },
    error: function () {
        jQuery('#main-content').html("errors");
    }
});

在我的控制器中我有:

$response = new JsonResponse();
$dataToReturn = array('data' => $dataerror);
$response->setData($dataToReturn);
return $response;

返回的结果如下:

enter image description here

我想在twig文件中的表中显示控制器返回的数据。我测试了几种解决方案,但没有用。

请帮助

2 个答案:

答案 0 :(得分:2)

您是否尝试遍历json元素并创建表格,例如:

function createTable(data) {
        var rowData;
        var rowHTML;
        var tableHTML = "<table>";

        for (var i = data.length - 1; i >= 0; i--) {
            rowData = data[i];
            rowHTML = "<tr>";

            for (var k = rowData.length - 1; k >= 0; k--) {
                rowHTML += "<td>" + rowData[k] + "</td>";
            }

            rowHTML += "</tr>";
            tableHTML += rowHTML;
        }

        tableHTML += "</table>";

        return tableHTML;
    }

并在成功回调中调用它:

  

的jQuery( '#数据')的HTML(CREATETABLE(parsedData.data));

答案 1 :(得分:1)

主要问题是后端返回普通的JSON。

所以jQuery('#data').append(parsedData.data);永远不会有效,因为它是一个javascript对象。

你必须像以前建议的那样通过javascript创建元素,或者你必须使用symfony返回html。如果您愿意,可以为它创建单独的视图。

然后像这样追加返回的html:

jQuery('#data').append(result);