Bonjour,

Voila j'ai suivi le tuto suivant : https://www.grafikart.fr/tutoriels/symfony/champs-imbriques-888
Très bon tuto d'ailleurs - Merci encore Grafikart.

Mes champs imbriqués fonctionnent très bien lorsque je fais un new salarié, mais lorsque je l'edit et que je modifie le choix d'un select j'ai une erreur 500 au niveau de l'ajax request.

mon js :

$(document).on('change', '#employee__center, #employee__division', function () {
    let $field = $(this);
    let $centerField = $('#employee__center');
    let $form = $field.closest('form');

    let target = '#' + $field.attr('id').replace('division', 'team').replace('center', 'division');

    let data = {};
    data[$centerField.attr('name')] = $centerField.val();
    data[$field.attr('name')] = $field.val();

    $.post($form.attr('action'), data).then(function (data) {
        let $input = $(data).find(target);
        $(target).replaceWith($input);
    })
});

Le problème c'est que les id de mes select dans le formulaire edit sont différents : #employee_edit_center et #employee_edit_division, même les attributs names sont différents #employeeedit[center] et #employeeedit[division] :

<select id="employee_edit_division" name="employee_edit[division]" class="form-control form-control"><option value="">Sélectionnez un groupe</option><option value="1">GMR CEVENNES</option><option value="2" selected="selected">GMR COTE D AZUR</option><option value="3">GMR PROVENCE ALPES DU SUD</option></select>

Donc j'ai fait le même code js avec les Id différents :

$(document).on('change', '#employee_edit_center, #employee_edit_division', function () {
    let $field = $(this);
    console.log($field);
    let $centerField = $('#employee_edit_center');
    let $form = $field.closest('form');

    let target = '#' + $field.attr('id').replace('division', 'team').replace('center', 'division');

    let data = {};
    data[$centerField.attr('name')] = $centerField.val();
    data[$field.attr('name')] = $field.val();

    $.post($form.attr('action'), data).then(function (data) {
        debugger;
        let $input = $(data).find(target);
        $(target).replaceWith($input);
    })
});

Mais ca bug au niveau du $.post et je ne comprnds pas ce qui se passe... j'ai essayé de tricher en modifiant les id directement dans la vue twig, mais je n'arrive pas à modifier le name.

Si quelqu'un aurait une piste ?

1 réponse


Bonsoir, elle dit quoi l'erreur 500 ?

Merci