Bonjour à toutes et à tous,
Afin de pouvoir générer une multitude de calendrier, j'essaye non sans peine d'utiliser le datepicker de JQUERY.
Voici un exemple :
http://dianamahe.free.fr/test_tableaucalendrier2.php
Le contexte : lorsque j'ai un tableau de 10 lignes avec 2 calendriers par ligne, tous repérés par la class "champ_date_input_tableau", aucun problème. Tous les calendriers fonctionnent.
avec comme fonction jquery :
Lorsque j'ajoute une nouvelle ligne via ma fonction d'ajout ( function ajoutLigneAuTableauTransfert() ), le ou les nouveaux champs date se voient affecter de la class champ_date_input_tableau si j'en crois la consolde firebug, mais la fonction jquery ne fonctionne pas pour les nouveaux champs date créés.
Où est le problème ? Comment faire pour que les nouveaux datepicker fonctionnent ?
Par avance merci pour votre aide, car je sèche totalement.
code utilisé : voir le code source ou plus simplement :
Modifié par Tavarlindar (24 Jul 2012 - 22:29)
Afin de pouvoir générer une multitude de calendrier, j'essaye non sans peine d'utiliser le datepicker de JQUERY.
Voici un exemple :
http://dianamahe.free.fr/test_tableaucalendrier2.php
Le contexte : lorsque j'ai un tableau de 10 lignes avec 2 calendriers par ligne, tous repérés par la class "champ_date_input_tableau", aucun problème. Tous les calendriers fonctionnent.
avec comme fonction jquery :
<!--
$(document).ready(function(){
$.datepicker.setDefaults($.datepicker.regional['fr']);
$('.champ_date_input_tableau').datepicker({ /* action sur class date */
dateFormat: 'dd-mm-yy',
changeMonth: true,
changeYear: true,
yearRange: "c-70:c+70",
});
});
//-->
Lorsque j'ajoute une nouvelle ligne via ma fonction d'ajout ( function ajoutLigneAuTableauTransfert() ), le ou les nouveaux champs date se voient affecter de la class champ_date_input_tableau si j'en crois la consolde firebug, mais la fonction jquery ne fonctionne pas pour les nouveaux champs date créés.
Où est le problème ? Comment faire pour que les nouveaux datepicker fonctionnent ?
Par avance merci pour votre aide, car je sèche totalement.
code utilisé : voir le code source ou plus simplement :
<?php
header('Content-Type: text/html; charset=utf-8');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!--<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>TEST</title>
<link href="../crewform.css" rel="stylesheet" type="text/css" />
<link type="text/css" href="css/ui-darkness/jquery-ui-1.8.21.custom.css" rel="stylesheet" />
<script type="text/javascript" src="js/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.8.21.custom.min.js"></script>
</head>
<BODY>
<script type="text/javascript">
<!--
var nbLignesTransfert= 2;
function deleteRows(rowObjArray)
{
for (var i=0; i<rowObjArray.length; i++) {
var rIndex = rowObjArray[i].sectionRowIndex;
rowObjArray[i].parentNode.deleteRow(rIndex);
}
}
function ajoutLigneAuTableauTransfert()
{
var tbl = document.getElementById('tabtransfert');
// ajout d'une ligne
var row = tbl.tBodies[1].insertRow(-1);
// Lien cliquable de Suppression de ligne
var newCell0 = row.insertCell(0);
var LienSuppression=document.createElement('a');
newCell0.appendChild(LienSuppression);
var suppressionTexte=document.createTextNode('supprimer');
LienSuppression.appendChild(suppressionTexte);
LienSuppression.setAttribute('href','#');
LienSuppression.onclick = function () {deleteCurrentRow_tab_transfert(this)};
// Cellule 1 : champ caché id_transfert + champ numéro de vol
var newCell1 = row.insertCell(1);
//Champ caché id_transfert : vide lors de la création, avec une valeur en mode modification
var champ_id_transfert = document.createElement('input');
champ_id_transfert.setAttribute('type','hidden');
champ_id_transfert.setAttribute('name','id_transfert');
champ_id_transfert.setAttribute('value','');
newCell1.appendChild(champ_id_transfert);
// Champ Date d arrivee
var champ_date_arrivee = document.createElement('input');
champ_date_arrivee.setAttribute('type','text');
champ_date_arrivee.setAttribute('size','10');
champ_date_arrivee.setAttribute('name','date_t');
champ_date_arrivee.setAttribute('value','');
champ_date_arrivee.setAttribute('id','date_t');
champ_date_arrivee.className='champ_date_input_tableau';
newCell1.appendChild(champ_date_arrivee);
// Champ Heure d arrivee
var newCell2 = row.insertCell(2);
var champ_heure_arrivee = document.createElement('input');
champ_heure_arrivee.setAttribute('type','text');
champ_heure_arrivee.setAttribute('size','5');
champ_heure_arrivee.setAttribute('name','heure_t');
champ_heure_arrivee.setAttribute('value','');
champ_heure_arrivee.setAttribute('id','heure_t');
champ_heure_arrivee.className='champ_formulaire_gauche';
newCell2.appendChild(champ_heure_arrivee);
// Champ Aeoroport
var newCell3 = row.insertCell(3);
var champ_aeroport = document.createElement('input');
champ_aeroport.setAttribute('type','text');
champ_aeroport.setAttribute('size','25');
champ_aeroport.setAttribute('name','aeroport_t');
champ_aeroport.setAttribute('value','');
champ_aeroport.setAttribute('id','aeroport_t');
champ_aeroport.className='champ_formulaire_gauche';
newCell3.appendChild(champ_aeroport);
//Champ numéro de vol
var newCell4 = row.insertCell(4);
var champ_num_vol = document.createElement('input');
champ_num_vol.setAttribute('type','text');
champ_num_vol.setAttribute('size','20');
champ_num_vol.setAttribute('name','num_vol_t');
champ_num_vol.setAttribute('value','');
champ_num_vol.className='champ_formulaire_gauche';
newCell4.appendChild(champ_num_vol);
// Champ Nombre de passagers
var newCell5 = row.insertCell(5);
var champ_nb_passagers = document.createElement('input');
champ_nb_passagers.setAttribute('type','text');
champ_nb_passagers.setAttribute('size','2');
champ_nb_passagers.setAttribute('name','nb_passagers_t');
champ_nb_passagers.setAttribute('value','');
champ_nb_passagers.setAttribute('id','nb_passagers_t');
champ_nb_passagers.className='champ_formulaire_gauche';
newCell5.appendChild(champ_nb_passagers);
nbLignesTransfert++;
majNumLignesTabTransfert('ajout');
document.getElementById('nb_lignes_transfert').value= nbLignesTransfert;
}
function majNumLignesTabTransfert(modalite){
var modalite;
for(var i = 0 ; i < nbLignesTransfert ; i++){
var tbl = document.getElementById('tabtransfert');
var nom_aeroport;
tbl.tBodies[1].rows[i].className = 'gris'+(i%2);
//Mise a jour de la cellule 1 (champ caché id_transfert : vide lors de la création, avec une valeur en mode modification)
tbl.tBodies[1].rows[i].cells[1].getElementsByTagName('INPUT')[0].setAttribute('name','id_transfert'+(i+1));
//Mise a jour du champ date_arrivee
tbl.tBodies[1].rows[i].cells[1].getElementsByTagName('INPUT')[1].setAttribute('name','date_t'+(i+1));
tbl.tBodies[1].rows[i].cells[1].getElementsByTagName('INPUT')[1].setAttribute('id', 'date_t'+(i+1));
//Mise a jour du champ heure_arrivee
tbl.tBodies[1].rows[i].cells[2].getElementsByTagName('INPUT')[0].setAttribute('name','heure_t'+(i+1));
tbl.tBodies[1].rows[i].cells[2].getElementsByTagName('INPUT')[0].setAttribute('id', 'heure_t'+(i+1));
//Mise a jour du champ aeroprt
tbl.tBodies[1].rows[i].cells[3].getElementsByTagName('INPUT')[0].setAttribute('name','aeroport_t'+(i+1));
tbl.tBodies[1].rows[i].cells[3].getElementsByTagName('INPUT')[0].setAttribute('id', 'aeroport_t'+(i+1));
// on reprend la valeur de la dernière ligne
if (i==(nbLignesTransfert-1) && modalite=='ajout'){
nom_aeroport=document.getElementById('aeroport_t'+(nbLignesTransfert-1)).value;
tbl.tBodies[1].rows[i].cells[3].getElementsByTagName('INPUT')[0].setAttribute('value', nom_aeroport);
}
// Mise a jour du numero de vol
tbl.tBodies[1].rows[i].cells[4].getElementsByTagName('INPUT')[0].setAttribute('name','num_vol_t'+(i+1));
tbl.tBodies[1].rows[i].cells[4].getElementsByTagName('INPUT')[0].setAttribute('id','num_vol_t'+(i+1));
//Mise a jour du nombre de passagers
tbl.tBodies[1].rows[i].cells[5].getElementsByTagName('INPUT')[0].setAttribute('name','nb_passagers_t'+(i+1));
tbl.tBodies[1].rows[i].cells[5].getElementsByTagName('INPUT')[0].setAttribute('id', 'nb_passagers_t'+(i+1));
}
}
function deleteCurrentRow_tab_transfert(obj,id_transfert_sup)
{
var delRow = obj.parentNode.parentNode;
var tbl = delRow.parentNode.parentNode;
var rIndex = delRow.sectionRowIndex;
var rowArray = new Array(delRow);
var id_transfert_sup = id_transfert_sup;
//alert(id_prestation_sup);
if (!isNaN(id_transfert_sup)){
document.forms["equipage"].elements["id_transfert_a_supprimer"].value+=id_transfert_sup+'|';
}
deleteRows(rowArray);
nbLignesTransfert--;
majNumLignesTabTransfert();
document.getElementById('nb_lignes_transfert').value= nbLignesTransfert;
}
//-->
</script>
<script>
<!--
$(document).ready(function(){
$.datepicker.setDefaults($.datepicker.regional['fr']);
$('.champ_date_input_tableau').datepicker({ /* action sur class date */
dateFormat: 'dd-mm-yy',
changeMonth: true,
changeYear: true,
yearRange: "c-70:c+70",
});
});
//-->
</script>
<div class="imgHead">
</div>
<div id="BlocContenu">
<!-- Barre Haut Titre -->
<div id="BarreHautFormulaire">
</div>
<!-- FIN Barre Haut Titre -->
<div id="BlocFormulaire">
<form class="formulaire_resa" name="equipage" id="equipage" METHOD='POST' ACTION="nonactive.php" onsubmit="return ValidationSaisie()">
<input type="hidden" id ='nb_lignes_transfert' name='nb_lignes_transfert' value='2'>
<input type="hidden" id="id_transfert_a_supprimer" name="id_transfert_a_supprimer" value="">
<table id="tabtransfert" style="text-align: left; " border="0" cellpadding="2" cellspacing="2">
<tbody>
<tr style="background-color:#4b4b4b; color:white;">
<td style="width: 50px;background-color:white;"></td>
<td style="width: 150px;padding-left:5px;font-weight : bold;">DATE</td>
<td style="width: 40px;padding-left:5px;font-weight : bold;">Heure</td>
<td style="width: 100px;padding-left:5px;font-weight : bold;">Aeroport</td>
<td style="width: 70px;padding-left:5px;font-weight : bold;">Numéro</td>
<td style="width: 20px;padding-left:5px;font-weight : bold;">nombre</td>
</tr>
</tbody>
<tbody>
<tr class="gris0">
<td></td>
<td><input type='hidden' id='id_transfert1' name='id_transfert1' size='2' value="">
<input class='champ_date_input_tableau' type='text' id='date_t1' name='date_t1' size='10' value="">
</td>
<td><input class ='champ_formulaire_gauche' type='text' id='heure_t1' name='heure_t1' size='5' value=""></td>
<td><input class ='champ_formulaire_gauche' type='text' id='aeroport_t1' name='aeroport_t1' size='25' value=""></td>
<td><input class ='champ_formulaire_gauche' type='text' id='num_vol_t1' name='num_vol_t1' size='10' value=""></td>
<td><input class ='champ_formulaire_gauche' type='text' id='nb_passagers_t1' name='nb_passagers_t1' size='5' value=""></td>
</tr>
<tr class="gris1">
<td></td>
<td><input type='hidden' id='id_transfert2' name='id_transfert2' size='2' value="">
<input class='champ_date_input_tableau' type='text' id='date_t2' name='date_t2' size='10' value="">
</td>
<td><input class ='champ_formulaire_gauche' type='text' id='heure_t1' name='heure_t2' size='5' value=""></td>
<td><input class ='champ_formulaire_gauche' type='text' id='aeroport_t2' name='aeroport_t2' size='25' value=""></td>
<td><input class ='champ_formulaire_gauche' type='text' id='num_vol_t2' name='num_vol_t2' size='10' value=""></td>
<td><input class ='champ_formulaire_gauche' type='text' id='nb_passagers_t2' name='nb_passagers_t2' size='5' value=""></td>
</tr>
</tbody>
<tbody>
<tr>
<td><input type="button" value="Ajouter" onclick="ajoutLigneAuTableauTransfert();"></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
</div>
<div id="BarreBasFormulaire">
</div>
</form>
</div><!-- Fin du Blonc Contenu-->
<div id="footer">
</div>
</body>
</html>
[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i] Modifié par Tavarlindar (24 Jul 2012 - 22:29)