Bonjour,
Voila je rencontre un petit problème avec mon code.
J'ai suivi les tuto de grafikart pour en intégrant le moteur de vue Twig.
Cependant je rencontre un problème de taille.
Je voudrais pour un appel ajax afin d'éditer un contenu et l'afficher dans une modal.
Mon problème est que je voudrais passer une variable javascript à twig avec la fonction path.
Pouvez vous m'aidez.
Merci.
A propos de mon code.
function Edit_Privilege(privilege) {
save_method = 'update';
{% set a = 'hello' %}
var url = '{{ path("admin.ajax.privilege.edit", { name : privilege} ) }}';
.../..
Salut,
Il va falloir que tu passe par du get ou post en ajax et en php tu va la récupérer
$_GET['NOM-VARIABL']
et ensuite tu l'envoie a twig.
Il ne faut pas oublier que twig reste du php, il s'execute avant ton javascript.
Si tu souhaite filer à ton code javascript une url pour ta requête ajax tu peux, mais pour ce qui est de l'inverse ce sera pas trop possible d'utiliser la fonction path
de twig avec une variable javascript.
J'avais fait un truc du genre
<a class="btn btn-success btn-3d" href="javascript:void(0)" onclick="Edit_Privilege('."'".$stdClass->name."'".')" data-toggle="modal" data-target="#modal-edit-privilege"><span class=" left ion-edit"></span></a>
Et dans ma fonction javascript je voulais faire une truc du genre
Et je voulais passé ma variable Permission dans ma fonction path, mais impossible.
function Edit_Privilege(Permission) {
save_method = 'update';
url = "{{path('admin.permission.edit', { slug: Permission } ) }}";
var form = $('#form-edit-permission');
form[0].reset();
$('#form-edit-permission').formValidation('resetForm', true);
// Je reset le formulaire au cas ou j'ai fait une opération avant
//Requète Ajax permettant de lire la BDD
$.ajax({
url: url,
type: "GET",
dataType: "JSON",
success: function (response) {
if(response.status == true){
$('[name="idPermission"]').val(response.data.idPermission);
$('[name="name"]').val(response.data.name);
$('[name="bit"]').val(response.data.bit);
$('[name="wording"]').val(response.data.wording);
$('[name="track"]').val(response.data.track);
$('#myModalLabel').text("Edition de la permission "+response.data.name+"");
toastr.options.progressBar = true;
toastr.success(response.message, 'Attention');
}
if(response.status == false){
toastr.options.progressBar = true;
toastr.error(response.message, 'Attention');
}
},
error: function (jqXHR, textStatus, errorThrown) {
toastr.options.progressBar = true;
toastr.error('Une erreure est survenue de type : '+errorThrown, 'Attention!')
}
});
}
Bonsoir.
Une question qui peut paraître idiote, mais, la fonction __Edit_Privilege, elle se situe dans un fichier Javascript ou entre les balises script
dans le fichier de ta vue ?
Car si c'est le premier cas, il te sera impossible d'interpréter du PHP/Twig dans ton fichier Javascript, par conséquent la valeur que tu définis dans la variable url
est totalement inutile, le mieux que tu puisse faire, c'est de laisser Twig interpréter l'url dans l'attribut href__ du lien et de récupérer sa valeur lorsque l'évènement du click sur le lien est détécté.
Bonsoir,
De mon coté, ce que j'aurais fais c'est de passer des atribut data-xx dans ton lien et récuperer ça via le javascript par exemple
<a href="#" data-url="{{path('admin.permission.edit', { slug: xxx } ) }}">....</a>
et en jquery c'est
url = $("a").data('url')
Je viens de trouver ça :
var url = Routing.generate('ta_route', {'param' : variable_js});