[jQuery] champs supplémentaires non postés

Par bebs, il y a 8 ans


Bonjour,

je suis nouveau sur ce forum, merci de votre indulgence :D
j'ai déjà posté ce message dans la partie cakePHP, mais je crois finalement qu'il aura plus sa place ici...

dans un projet cakePHP, j'ai besoin d'associer plusieurs adresses à une personne. Le nombre d'adresses n'étant pas défini, j'utilise jquery pour générer des champs supplémentaires, mais ces champs générés ne sont pas posté... ?

ben... pourquoi ?

voilà mon add.ctp

<div class="box-body" id="lesadresses"> <fieldset id="adresses-0"> <input type="hidden" name="adresses[0][id]" id="adresses-0-id"> <div class="form-group col-xs-8"> <label>N° et Voie</label> <input type="text" name="adresses[0][nomvoie]" maxlength="250" id="adresses-0-nomvoie" class="form-control"> </div> <div class="form-group col-xs-4"> <label>Ville</label> <select id="adresses-0-ville_id" name="adresses[0][ville_id]" class="form-control"> <?php $optionsLesVilles =''; foreach ($villes as $villeid => $ville) : $optionsLesVilles .= '<option value="'.$villeid.'">'.$ville.'</option>'; endforeach; echo $optionsLesVilles; ?> </select> </div> </fieldset> </div> <script> /* Ajout et suppression d'une adresse */ var derniereadresse = 0; $('#adresse-plus').click( function(){ var prochaineadresse = derniereadresse+1; $("#adresses-"+prochaineadresse).removeClass('hidden'); var dernierinputa = "#adresses-"+derniereadresse; var c = $('#adresses-0').clone(); var cplus = c.html().replace(/adresses-0/g, 'adresses-'+prochaineadresse); c = cplus.replace(/adresses\[0/g, 'adresses['+prochaineadresse); c = '<fieldset id="adresses-'+prochaineadresse+'">'+c+'</fieldset>'; $(dernierinputa).after(c); if (derniereadresse<1) $('#adresse-moins').removeClass("disabled"); derniereadresse++ } ); $('#adresse-moins').click( function(){ if ( !$(this).hasClass("disabled")){ $("#adresses-"+derniereadresse).remove(); derniereadresse--; if(derniereadresse<1) $(this).addClass("disabled"); } } ); </script>

cakePHP

j'ai placé un

die(debug($_POST));

dans mon controleur

je remplis mon formulaire avec 2 adresses, mais :

voilà le retour :

/src/Controller/PersonnesController.php (line 57) [ '_method' => 'POST', 'prenom' => 'Bruce', 'nom' => 'Wayne', 'naissance' => '10/10/2010', 'telephones' => [ (int) 0 => [ 'id' => '', 'numero' => '111111111' ], (int) 1 => [ 'id' => '', 'numero' => '222222222' ] ], 'mails' => [ (int) 0 => [ 'id' => '', 'email' => 'bruce@wayne-enterprise.com' ], (int) 1 => [ 'id' => '', 'email' => 'ihatebats@hotmail.com' ] ], 'adresses' => [ (int) 0 => [ 'id' => '', 'nomvoie' => '4e avenue', 'ville_id' => '49' ] ] ]

On voit que j'ai créé dynamiquement des champs téléphones et mails qui sont pris en compte... mais pas les adresses ?
Les champs téléphones et mails ne crées que 2 inputs :

Je ne comprends pas...

Merci à tous !!

7 réponses

Pierrot01, il y a 8 ans

j'vois pas de

<form> </form>

@plus

bebs, il y a 8 ans

merci... c'est bien ce qui me tracasse :D

Pierrot01, il y a 8 ans

moi, ça me tracasse pas :D
@plus
Pierre

bebs, il y a 8 ans

hé hé :D

j'ai testé sur plusieurs navigateurs à postériori, mais pas mieux...
je ne vois pas ce que j'ai loupé...

Pierrot01, il y a 8 ans

je répète : :D
ou est le

<form> </form>

???

@plus

bebs, il y a 8 ans

ha... ça ne l'affichait pas dans ton premier message...

Je ne l'ai pas collé, mais j'ai bien un

<?= $this->Form->create($personne) ?>

et

<?= $this->Form->end() ?>

qui génère un

<form></form>
bebs, il y a 8 ans

héhé... mais tu as mis le doigt sur le problème.
le

<form></form>

n'était pas encastré comme il faut...

Milles mercis !!