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 ?
<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>
j'ai placé un
die(debug($_POST));
dans mon controleur
je remplis mon formulaire avec 2 adresses, mais :
/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 !!
hé hé :D
j'ai testé sur plusieurs navigateurs à postériori, mais pas mieux...
je ne vois pas ce que j'ai loupé...
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>
héhé... mais tu as mis le doigt sur le problème.
le
<form></form>
n'était pas encastré comme il faut...
Milles mercis !!