我想在我的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;
返回的结果如下:
我想在twig文件中的表中显示控制器返回的数据。我测试了几种解决方案,但没有用。
请帮助
答案 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);