Bonjour,
J'ai un petit soucis avec un formulaire. Le formulaire est bien généré néanmoins quand j'utilise la fonctionnalité ajouter une personne, rien ne se passe. Je suis sûr que le problème vient de :
Néanmoins, je ne trouve pas comment arranger ça...
voici le code js entier, avec un bout d'html :
Merci pour tout aide possible...
J'ai un petit soucis avec un formulaire. Le formulaire est bien généré néanmoins quand j'utilise la fonctionnalité ajouter une personne, rien ne se passe. Je suis sûr que le problème vient de :
for(var i = 0; i <= index_max; i++){
$('#add_personne_' + i).click(function() {
add_personne();
return false;
});
}
Néanmoins, je ne trouve pas comment arranger ça...
voici le code js entier, avec un bout d'html :
<a href="#" id="add_role">Ajouter un métier</a>
<a href="#" id="add_tag">Ajouter un tag</a>
<input type="submit" />
</form>
<script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
//récupération des balises
var $container = $('#ssscinecube_filmsbundle_filmtype_personne');
var $contain = $('#ssscinecube_filmsbundle_filmtype_tag');
var $container_personne = [];
// fonctions d'ajout
function add_role() {
// On définit le numéro du champ (en comptant le nombre de champs déjà ajoutés)
index = $container.children().length;
$container.append($($container.attr('data-prototype').replace(/__name__/g, index)));
// On ajoute également un bouton pour pouvoir supprimer la catégorie
$container.append($('<a href="#" id="delete_role_' + index +'">Supprimer le rôle</a><br /><br />'));
$container.append($('<a href="#" id="add_personne_' + index + '">Ajouter une personne</a>'));
//on ajoute une ligne au tableau contenant la balise interne à la balise de role
$container_personne.push($('#ssscinecube_filmsbundle_filmtype_personne_' + index + '_personne'));
$('#delete_role_' + index).click(function() {
$(this).prev().remove();
$(this).remove();
return false;
});
return index;
}
function add_tag() {
indx = $contain.children().length;
$contain.append($($contain.attr('data-prototype').replace(/__name__/g, indx)));
// On ajoute également un bouton pour pouvoir supprimer la catégorie
$contain.append($('<a href="#" id="delete_tag_' + indx +'">Supprimer</a><br /><br />'));
// On supprime le champ à chaque clic sur le lien de suppression
$('#delete_tag_' + indx).click(function() {
$(this).prev().remove();
$(this).remove();
return false;
});
}
function add_personne(index_role){
index_personne = $container_personne[index_role].children().length;
$container_personne[index_role].append($($container_personne[index_role].attr('data-prototype').replace(/__name__/g, index_personne)));
$container_personne[index_role].append($('<a href="#" id="delete_personne_' + index_personne + '">Supprimer la personne</a><br /><br />'));
$('#delete_personne_' + index_personne).click(function() {
$(this).prev().remove();
$(this).remove();
return false;
});
}
// ajout premiers champs
if($container.children().length == 0) {
index_max = add_role();
add_personne(index_max);
}
if($contain.children().length == 0) {
add_tag();
}
//ajouts lors de clics
$('#add_role').click(function() {
add_role();
return false;
});
$('#add_tag').click(function() {
add_tag();
return false;
});
for(var i = 0; i <= index_max; i++){
$('#add_personne_' + i).click(function() {
add_personne();
return false;
});
}
});
</script>
Merci pour tout aide possible...