I would like to be able to retrieve the data previously entered in my datagrid. However, I don't know what URL I have to put to be able to save nor how to declare this in my controller.
i'm using Handonetable.js
I have not yet created my entity
Code of the datagrid
{# ---Affichage du datagrid--- #}
<div id="travailEquipe" class="hot mt-4"></div>
<button id="save" class="button button--primary button--blue">Save data</button>
<script>
{# ---Code du datagrid--- #}
const container = document.querySelector('#travailEquipe');
const save = document.querySelector('#save');
const hot = new Handsontable(container,
{ data: [ ['', '',1 ,1 ,1 ,1 ,''], ['', '',1 ,1,1 ,1 ,''], ['', '',1 ,1 ,1 ,1 ,''],
['', '',1 ,1 ,1 ,1 ,''], ],
className:'htCenter htMiddle',
colHeaders: ['Nom Apprenant', 'Prénom Apprenant','Critère A', 'Critère B', 'Critère C', 'Critère D', 'Remarque'],
columns: [{}, {}, { type: 'dropdown', source: [1, 2, 3, 4] }, { type: 'dropdown',
source: [1, 2, 3, 4] },
{ type: 'dropdown', source: [1, 2, 3, 4] },
{ type:'dropdown',
source: [1, 2, 3, 4] }, {}, ],
contextMenu: true,
width: '100%',
height: 'auto',
colWidths: [480, 480, 120, 120, 120, 120, 480],
rowHeights:[40, 40, 40, 40, 40, 40, 40],
manualColumnResize: true,
licenseKey:'non-commercial-and-evaluation', });
{# --- Bouton de sauvegarde --- #}
Handsontable.dom.addEvent(save, 'click', () => {
// save all cell's data
ajax('/docs/11.1/scripts/json/save.json', 'POST', JSON.stringify({ data: hot.getData() }), res => {
const response = JSON.parse(res.response);
if (response.result === 'ok') {
save.innerText = 'Données sauvegardées';
} else {
save.innerText = 'erreur de sauvegarde';
}
});
});
</script>
part of my controller
/**
* @Route("/TravailEquipe", name="TravailEquipe")
*/
public function TravailEquipe(): Response
{
return $this->render('pedagogie/TravailEquipe.html.twig', [
'controller_name' => 'PedagogieController',
]);
}