Je construit un tableau avec HandsonTable, quand je modifie le tableau je veux que ça modifie aussi la bdd. Voilà plusieurs jours que j'essaye de récupérer des données que j'envoie avec de l'ajax, j'ai essayé pas mal de choses et de synthaxes différentes mais ça ne fonctionne toujours pas.
Voilà ma partie JS dans mon fichier twig :
<script type="text/javascript">
var
$$ = function(id) {return document.getElementById(id);},
container = $$('example3'),
save = $$('save'),
hot;
hot = new Handsontable(container,{
data: data3,
rowHeaders: true,
colHeaders: true,
filters: true,
dropdownMenu: true}) ;
var JSONTAB = hot.getSourceData() ;
console.log(hot.getSourceData()) ;
Handsontable.dom.addEvent(save, 'click', function () {
jQuery.ajax({
url: "{{ path('oc_advert_save') }}",
type: "POST",
dataType: "json",
contentType: 'application/json; charset=utf-8',
data: JSONTAB,
async: true,
processData: false,
cache: false,
success: function (data) {
example1console.innerHTML = 'Data saved';
},
error: function (xhr) {
example1console.innerHTML = 'Error when saving';
console.log(JSONTAB) ;
},
});
});
</script>
Quand je modifie le tableau, j'ai bien mes modifications qui s'affichent dans la console.
Quand je clique sur mon bouton enregistrer, j'ai mon message d'erreur qui se déclenche. Aucune erreur n'est retournée dans la console sinon.
Je peux voir les données modifiées dans la partie 'Request Content' de la barre de Symfony , ou 'Request Payload' dans la console.
La route de mon controleur semble être trouvée, voici son code :
/**
* @Route("/save", name="oc_advert_save")
*/
public function saveData(Request $request)
{
if ($request->isXmlHttpRequest())
{
$newData = $request->query->get('JSONTAB') ;
return new Response ("okok") ;
}
else return new Response("ca ne marche pas ") ;
}
Pas encore de traitement dans mon controleur pour l'instant, je veux juste voir s'il récupère quelque chose.
Si dans mon Javascript au lieu de mettre JSON.strigify(ma variable) je met {'newData : JSON.strigify(ma variable)} je ne vois plus mon tableau dans la requete, a la place j'ai {Object : object}, et pas d'erreur.
J'ai plus d'idée pour avancer, ça fait 3 jours que j'essaye de construire ce tableau et ça commence à me gaver. Je suis aussi en train de faire le même avec JExcel mais pas trouver de doc sur comment enregistrer les modifs en bdd.
Si quelqu'un sait d'où vient le problème je serais très heureux de le lire. a+
Récupérer les données envoyées :AJAX - Symfony3
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.