(XML/XSL également) Manipulation DOM2 en DHTML

Manipulation DOM2 en DHTML (XML/XSL également) - HTML/CSS - Programmation

Marsh Posté le 25-11-2003 à 13:20:23    

Bonjour j'ai un tableau qui ressemble a ca:
<table id="style2" width="100%" cellpadding="0" cellspacing="0">
  <tr class="InterfaceHeader" id="example45">
   <TD ><font class="InterfaceHeader_SubText" >Selection</font></TD>
    <TD ><font class="InterfaceHeader_SubText" >Name</font></TD>
    <TD><font class="InterfaceHeader_SubText" >Company</font></TD>
    <TD><font class="InterfaceHeader_SubText" >Mail</font></TD>
    <TD><font class="InterfaceHeader_SubText">Report format</font></TD>
  </tr>
  <tr id="TR0" class="InterfaceHeader2">
  <td><input type=checkbox id="Check0" IndexVal="TR0"></td>
  <td>Jean Clusote</td>
  <td>Alicanos</td>
  <td>Jean.Clusote@Alicanos.net</td>
  <td>IATA chapter 7</td>
  </tr>
  <tr id="example4" class="InterfaceHeader2">
  </tr>
</table>
 
j'aimerais editer et rajouter des lignes pour ajouter je fais ca:
 
 function insertTD(){
 var myObject=null;
 VarArray=window.showModalDialog ('ReportForm.html',myObject,"dialogWidth:450px;dialogHeight:270px;status: no;unadorned: yes;help: no;scroll:no" );
 
 if (VarArray!=null){
 
 var newTR = document.createElement("tr" );
 newTR.setAttribute("id",("TR"+TRcount));
 //alert(newTR.getAttribute("id" ))
 if (parity == true){
 newTR.style.backgroundColor="#F2ECDE";
 parity=false;
 }else{
 parity=true;
 }
 
 
 
 //Create the check box
 var newTDSelection = document.createElement("td" );
 var newInputSel = document.createElement("input" );
 newInputSel.setAttribute("id",("Check"+TRcount));
 newInputSel.setAttribute("type","checkbox" );
 newInputSel.setAttribute("IndexVal",newTR.getAttribute("id" ));
 newTDSelection.appendChild(newInputSel);
 
 
 var newTDName = document.createElement("td" );
 var newTDCompany = document.createElement("td" );
 var newTDMail = document.createElement("td" );
 var newTDReport = document.createElement("td" );
 var newInputSel = document.createElement("input" );
 
 
 var newTextName = document.createTextNode(VarArray.Name);
 var newTextCompany = document.createTextNode(VarArray.Company);
 var newTextMail = document.createTextNode(VarArray.Email);
 var newTextReport = document.createTextNode(VarArray.Report);
 
 //newTDSelection.appendChild(newTextSel);
 newTDName.appendChild(newTextName);
 newTDCompany.appendChild(newTextCompany);
 newTDMail.appendChild(newTextMail);
 newTDReport.appendChild(newTextReport);
 
 newTR.appendChild(newTDSelection);
 newTR.appendChild(newTDName);
 newTR.appendChild(newTDCompany);
 newTR.appendChild(newTDMail);
 newTR.appendChild(newTDReport);
 
 TRcount++;
 var TbElm = document.getElementById("example4" );
 TbElm.insertBefore(newTR,null);
 }
 }
 
au fait mon probleme se situe au niveau de l'edition:
je voudrais a l'aide d'une CheckBox editer un message checke:
pour cela j'ai une boucle qui test si l'element est checke
Ma question est simple:
Comment recuperer le parent a savoir la ligne (TR0 ici par exemple) e t recuperer ensuite la valeur de ces fils (ici les TD):

 
j'ai essayer des truc comme ca mais ca marche pas trop:
 
 function EditTR(){
 var i=0;
 while(document.getElementById("Check"+i)!=null){
 var element=document.getElementById("Check"+i);
 if (element.checked==true){
 var myMom=element.parentElement;
 var myLine=document.getElementById(element.IndexVal);
 var myParent=myLine.parentElement;
 alert(myLine.id);
 alert(myParent.id);
 alert(myMom.id);
 alert("Check"+i);
 alert(document.getElementsByTagName("TR" ).nodeValue);
 alert(myLine.length)
 alert(myLine.childNodes[3].nodeValue);
 var aReturn=myLine;//.parentElement.getElementsByTagName
 
 alert(aReturn[0].childNodes[0].nodeValue);
 alert(aReturn[aReturn.length-1].childNodes[0].nodeValue);
 alert(aReturn.length);
 }
 i++;
 }
 }


Message édité par PETOZAK le 25-11-2003 à 16:12:48
Reply

Marsh Posté le 25-11-2003 à 13:20:23   

Reply

Marsh Posté le 25-11-2003 à 19:13:34    

PETOZAK a écrit :

Bonjour j'ai un tableau qui ressemble a ca:
 
[...]
  <tr class="InterfaceHeader" id="example45">


Attention, pas de _ dans les noms de classes

PETOZAK a écrit :


  <td><input type=checkbox id="Check0" IndexVal="TR0"></td>


Il sort d'où cet attribut IndexVal ?? En tout cas il n'existe pas dans les specs du HTML...

PETOZAK a écrit :


 var myMom=element.parentElement;
 var myLine=document.getElementById(element.IndexVal);
 var myParent=myLine.parentElement;


Et pourquoi pas :
myParent = element.parentElement.parentElement; :??:
 
De toute façon ta boucle me paraît superflue. Pourquoi tu n'ajoutes pas un évènement onchange sur ton <input> ? Comme ça tu pourrais récupérer directement le input, et donc la ligne, dans ta fonction.


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
Reply

Marsh Posté le 26-11-2003 à 09:47:51    

tu as l'air sympas mais tu ne m'aides pas ;)

Citation :


Il sort d'où cet attribut IndexVal ?? En tout cas il n'existe pas dans les specs du HTML...


tu peux placer les attributs que tu veux en HTML du moment qu'ils ne sont pas en conflit avec les habituels

Citation :


Et pourquoi pas :
myParent = element.parentElement.parentElement; :??:


parce que j'ai besoin des 2 apres myParent et myLine.

Citation :


De toute façon ta boucle me paraît superflue. Pourquoi tu n'ajoutes pas un évènement onchange sur ton <input> ? Comme ça tu pourrais récupérer directement le input, et donc la ligne, dans ta fonction.


Je veux pouvoir en editer plusieurs a la fois

Reply

Marsh Posté le 26-11-2003 à 09:49:08    

ma questiion est simple recuperer la valeur des colonnes?
<TD>je veux le texte qui est ici</TD>

Reply

Marsh Posté le 26-11-2003 à 09:54:06    

PETOZAK a écrit :


tu peux placer les attributs que tu veux en HTML du moment qu'ils ne sont pas en conflit avec les habituels


Et la marmotte...

Reply

Marsh Posté le 26-11-2003 à 10:33:42    

PETOZAK a écrit :


   <TD ><font class="InterfaceHeader_SubText" >Selection</font></TD>


 
c'est pas plus simple d'écrire
 
   <TD class="InterfaceHeader_SubText" >Selection</TD>
? :o


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 26-11-2003 à 11:42:34    

Au fait la bonne reponse est:
innerHTML
c'est tout bete

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed