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 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147
|
<!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="en" lang="en">
<head>
<title>Tableau dynamique</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
table { border:thin solid #A2968A; border-collapse:collapse; text-align:center; }
td { border:thin dotted #A2968A; padding:5px; text-align:center; height: 50px; }
tr.trSpe { border:thin dotted #A2968A; padding:5px; text-align:center; height: 50px; background-color:#aeaeae; }
td.tdSpe { border:thin dotted #A2968A; padding:5px; text-align:center; height: 50px; background-color:#aeaeae; }
div.patience {position:fixed;top:25%;left:50%;font-size:16px;font-weight:bold;color:#000000;width:800px;margin-left:-400px;height:16px;
border:2px solid #404040;text-align:center;padding-top:15px;padding-bottom:15px;padding-left:14px;padding-right:14px;background:#fffcd7;}
</style>
<script type="text/javascript" language="JavaScript">
function clone(ligne, idChamps, ligneNum) {
if (ligne.parentNode.rows.length < 15) {
alert(ligne.innerHTML); // --> le contenu de la balise SCRIPT est bien là
var mesScripts = ligne.getElementsByTagName('SCRIPT');
for (i=0 ; i<= mesScripts.length-1 ; i++) {
alert(mesScripts[i].innerHTML); // --> cela me donne bien le contenu de mon SCRIPT
}
newLigne = ligne.cloneNode(true); // je clone
alert(newLigne.innerHTML); // ---> le contenu de la balise SCRIPT est désormais vide...
var reg = new RegExp (idChamps+'_'+ligneNum, 'g');
var reg2 = new RegExp ('\''+idChamps+'\',\''+ligneNum+'\'', 'g');
var nbLignesActuellement = ligne.parentNode.rows.length;
var newLigneNum = nbLignesActuellement+1;
var tds = newLigne.getElementsByTagName('td');
for(i=0; i<tds.length; i++) {
tds[i].innerHTML = tds[i].innerHTML.replace(reg, idChamps+'_'+newLigneNum); //on incrémente tous les ids _x_x_x
tds[i].innerHTML = tds[i].innerHTML.replace(reg2, '\''+idChamps+'\',\''+newLigneNum+'\''); //on incrémente le ligneNum des boutons Copie et New
}
alert(newLigne.innerHTML);
ligne.parentNode.appendChild(newLigne);
}
else alert("Pas plus de 15 lignes pour ce champs !");
}
function cloneEtVide(ligne, idChamps, ligneNum) {
if (ligne.parentNode.rows.length < 15) {
newLigne = ligne.cloneNode(true);
//On vide d'abord les champs, ça fait des remplacements en moins...
var mesInput = newLigne.getElementsByTagName('INPUT');
var mesTextarea = newLigne.getElementsByTagName('textarea');
var mesSelect = newLigne.getElementsByTagName('select');
for (i=0 ; i<= mesInput.length-1 ; i++) { if (mesInput[i].type == 'text') mesInput[i].value=""; }
for (i=0 ; i<= mesTextarea.length-1 ; i++) { mesTextarea[i].innerHTML = ""; }
for (i=0 ; i<= mesSelect.length-1 ; i++) { mesSelect[i].selectedIndex = 0; }
//On fait les remplacements
var reg = new RegExp (idChamps+'_'+ligneNum, 'g');
var reg2 = new RegExp ('\''+idChamps+'\',\''+ligneNum+'\'', 'g');
var nbLignesActuellement = ligne.parentNode.rows.length;
var newLigneNum = nbLignesActuellement+1;
var tds = newLigne.getElementsByTagName('td');
for(i=0; i<tds.length; i++) {
tds[i].innerHTML = tds[i].innerHTML.replace(reg, idChamps+'_'+newLigneNum); //on incrémente tous les ids _x_x_x
tds[i].innerHTML = tds[i].innerHTML.replace(reg2, '\''+idChamps+'\',\''+newLigneNum+'\''); //on incrémente le ligneNum des boutons Copie et New
}
//On envoie...
ligne.parentNode.appendChild(newLigne);
}
else alert("Pas plus de 15 lignes dans ce tableau !");
}
function supprLigne(ligne, idChamps) {
if (ligne.parentNode.rows.length >= 2) {
document.getElementById('patientez').style.display='';
var nbLignesActuellement = ligne.parentNode.rows.length;
var ligneNum = ligne.rowIndex+1;
ligne.parentNode.removeChild(ligne);
var trs = document.getElementById('table1').getElementsByTagName('tr');
for (i=ligneNum-1; i<trs.length; i++){
var indice = trs[i].rowIndex+2; //le row index commence à 0 *et* il y a une ligne en moins...
var newIndice = indice-1;
var reg = new RegExp (idChamps+'_'+indice, 'g');
//alert("il faut remplacer tous les "+idChamps+'_'+indice+" par "+idChamps+'_'+newIndice);
var reg2 = new RegExp ('\''+idChamps+'\',\''+indice+'\'', 'g');
//alert('et il faut remplacer tous les \''+idChamps+'\',\''+indice+'\''+' par \''+idChamps+'\',\''+newIndice+'\'');
var tds = trs[i].getElementsByTagName('td');
for(j=0; j<tds.length; j++) {
tds[j].innerHTML = tds[j].innerHTML.replace(reg, idChamps+'_'+newIndice); //on décrémente tous les ids _x_x_x
tds[j].innerHTML = tds[j].innerHTML.replace(reg2, '\''+idChamps+'\',\''+newIndice+'\''); //on décrémente le ligneNum des boutons Copie et New
}
}
document.getElementById('patientez').style.display='none';
}
else alert("Impossible de supprimer la derniere ligne");
}
</script>
</head>
<body>
<div id="patientez" class="patience" style="display:none;">Veuillez patientez quelques instants</div>
<table id="table1" border="1" cellspacing="0" cellpadding="0">
<tr class="trSpe">
<td>
<SCRIPT type="text/javascript">function alertLigne_1_1_2_1(ligne){alert(ligne);}</SCRIPT>
<input type="text" title="_1_1_2_1" value="'_1_1_2','1'" name="_1_1_2_1_3_1" size="16" maxlength="64"></td>
<td> <input type="text" title="_1_1_2_1" value="_1_1_2_1_4_1" name="_1_1_2_1_4_1" size="16" maxlength="64"></td>
<td> <TEXTAREA WRAP="soft" title="_1_1_2_1" name="_1_1_2_1_5_1" ROWS="2" COLS="16">textarea A2</TEXTAREA></td>
<td> <select title="_1_1_2_1" name="_1_1_2_1_6_1"><OPTION value="">--<OPTION value="option 1">A3-1<OPTION value="option 2">A3-1<OPTION value="option 3">A3-1</select></td>
<td>
<input type="button" value="Copie" title="_1_1_2_1" onclick="clone(this.parentNode.parentNode, '_1_1_2','1');">
<input type="button" value="New" title="_1_1_2_1" onclick="cloneEtVide(this.parentNode.parentNode, '_1_1_2','1');">
<input type="button" value="Suppr." title="_1_1_2_1" onclick="supprLigne(this.parentNode.parentNode, '_1_1_2');">
<input type="button" value="Alert" title="_1_1_2_1" onclick="alertLigne_1_1_2_1('_1_1_2_1');">
</td>
</tr>
<tr>
<td class="tdSpe" NOWRAP>
<SCRIPT type="text/javascript">function alertLigne_1_1_2_2(ligne){alert(ligne);}</SCRIPT>
<input type="text" title="_1_1_2_2" value="'_1_1_2','2'" name="_1_1_2_2_3_1" size="16" maxlength="64"></td>
<td> <input type="text" value="_1_1_2_2_4_1" title="_1_1_2_2" name="_1_1_2_2_4_1" size="16" maxlength="64"></td>
<td class="tdSpe" NOWRAP> <TEXTAREA WRAP="soft" title="_1_1_2_2" name="_1_1_2_2_5_1" ROWS="2" COLS="16">textarea B2</TEXTAREA></td>
<td class="tdSpe" NOWRAP> <select title="_1_1_2_2" name="_1_1_2_2_6_1"><OPTION value="">--<OPTION value="option 1">B3-1<OPTION value="option 2">B3-1<OPTION value="option 3">B3-1</select></td>
<td>
<input type="button" value="Copie" title="_1_1_2_2" onclick="clone(this.parentNode.parentNode, '_1_1_2','2');">
<input type="button" value="New" title="_1_1_2_2" onclick="cloneEtVide(this.parentNode.parentNode, '_1_1_2','2');">
<input type="button" value="Suppr." title="_1_1_2_2" onclick="supprLigne(this.parentNode.parentNode, '_1_1_2');">
<input type="button" value="Alert" title="_1_1_2_2" onclick="alertLigne_1_1_2_2('_1_1_2_2');">
</td>
</tr>
<tr>
<td>
<SCRIPT type="text/javascript">function alertLigne_1_1_2_3(ligne){alert(ligne);}</SCRIPT>
<input type="text" title="_1_1_2_3" value="'_1_1_2','3'" name="_1_1_2_3_3_1" size="16" maxlength="64"></td>
<td> <input type="text" title="_1_1_2_3" value="_1_1_2_3_4_1" name="_1_1_2_3_4_1" size="16" maxlength="64"></td>
<td> <TEXTAREA WRAP="soft" title="_1_1_2_3" name="_1_1_2_3_5_1" ROWS="2" COLS="16">textarea C2</TEXTAREA></td>
<td> <select title="_1_1_2_3" name="_1_1_2_3_6_1"><OPTION value="">--<OPTION value="option 1">C3-1<OPTION value="option 2">C3-1<OPTION value="option 3">C3-1</select></td>
<td>
<input type="button" value="Copie" title="_1_1_2_3" onclick="clone(this.parentNode.parentNode, '_1_1_2','3');">
<input type="button" value="New" title="_1_1_2_3" onclick="cloneEtVide(this.parentNode.parentNode, '_1_1_2','3');">
<input type="button" value="Suppr." title="_1_1_2_3" onclick="supprLigne(this.parentNode.parentNode, '_1_1_2');">
<input type="button" value="Alert" title="_1_1_2_3" onclick="alertLigne_1_1_2_3('_1_1_2_3');">
</td>
</tr>
</table>
</table>
</body>
</html> |
Partager