Modifier la clé d'un tableau
Bonjour à tous, (ou bonsoir)
J'ai un petit script jquery qui me permet de cloner un div avec son contenu (4 champs input text).
Tous fonctionne bien sauf que j'aimerais que la clé du tableau s'incrémente automatiquement.
Merci de votre aide
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
// Ce que je souhaite en retour POST
Array
(
[0] => Array
(
[name] => encart 1
[succursale1] => 54
[succursale2] => 454
[succursale3] => 5465
)
[1] => Array
(
[name] => encart 2
[succursale1] => 156
[succursale2] => 5643
[succursale3] => 150
)
)
// Formulaire avec le DIV qui est cloné en jquery
<form method="post" action="traitement.php">
<div class="encart">
<ul>
<li><input type="text" name="encarts[0][name]" value=""/> Encart</li> // nom différent à chaque clonage
<li>Entreprise 1 <input type="text" name="encarts[0][entreprise1]"</li> // quantité
<li>Entreprise 1 <input type="text" name="encarts[0][entreprise1]"</li> // quantité
<li>Entreprise 1 <input type="text" name="encarts[0][entreprise1]"</li> // quantité
</ul>
</div>
<a id="add" href="javascript:;">Add</a>
<a href="javascript:;" title="Supprimer" class="del" rel="encart">Supprimer</a>
<input type="submit" value="ok"/>
</form>
jQuery(function() {
$("#add").click(function(){
var form = $(this).closest('form');
var encarts = form.find('.encart');
var firstEncart = $(encarts[0]);
var lastEncart = $(encarts[n-1]);
var clonedEncart = firstEncart.clone();
// Pour chaque input clonés
clonedEncart.find(':input').each(function() {
// On vide la valeur
$(this).filter(':text').val('').end()
})
$(this).attr("name", "encarts["+n+"]");
clonedEncart.insertAfter(lastEncart).hide().fadeIn('slow');
// On ajoute le le lien de suppression
$(".del").fadeIn("fast");
})
$(".del").click(function (){
var encartLast = $(".encart:last");
encartLast.remove();
// S'il y a moins de 2 articles (autrement dit un seul) on cache le bouton supprimer.
if ( $(".encart").length < 2 ) { $(".del").fadeOut("fast"); }
});
}) |