Avatar billede sbay Nybegynder
05. juli 2007 - 07:32 Der er 1 kommentar og
1 løsning

Kode der laver flere rækker

Hejsa

Dette spørgsmål tager sin begyndelse i  dette: http://www.eksperten.dk/spm/737549

Koden til functionerne er her:

<script type="text/javascript">
function addRow(elm){
  var tb = getParent(elm,"tbody");
  var tr = tb.getElementsByTagName("tr")[1];
  var nyTr = tr.cloneNode(true);
  var inps = nyTr.getElementsByTagName("input");
  for(i=0;inps.length>i;i++){
    if(inps[i].type == "text")
      inps[i].value = "";
  }
  var submitRow = getParent(elm, "tr");
  tb.insertBefore(nyTr,submitRow);
}
function deleteRow(elm){
  var tb = getParent(elm,"tbody");
  var trs = tb.getElementsByTagName("tr");
  if(3>trs.length)
    return;
  for(i=trs.length-2;i>0;i--){
    if(trs[i].getElementsByTagName("input")[5].checked)
      tb.removeChild(trs[i]);
  }
}
function getParent(elm,TagName){
  var parElm = elm.parentNode;
  while(parElm.tagName.toLowerCase() != TagName.toLowerCase())
    parElm = parElm.parentNode;
  return parElm;
}

Og der hvor der skal kunne laves flere rækker:
<tr>
                <td><font size="1" face="Trebuchet MS">
                <input type="button" value="#" name="BX" onClick="getCliche();">
                <input name='BCHLDKX[$i]' value='' type='text' size='12'> </font>
                </td>
                <td><font size="1" face="Trebuchet MS"><input name='BCHLDFX[]' value='' type='text' size='12'></font></td>
                <td><font size="1" face="Trebuchet MS"><input name='IDESCFX[]' value='' type='text' size='38'></font></td>
                <td><font size="1" face="Trebuchet MS">
                <input name='IDESCKX[]' value='' type='text' size='34' maxlength="34"></font></td>
                <td><font size="1" face="Trebuchet MS"><input name='IMENDTX[]' value='' type='text' size='12'></font></td>
                <td><font size="1" face="Trebuchet MS"><input name='slet' type='checkbox' value='delete'></font></td>
            </tr>
  <tr>
    <td>
    <font size="1" face="Trebuchet MS">
    <input name="addfield" type="button" value="Add row" onClick="addRow(this);return false;"><br>
    &nbsp;</font></td>
    <td valign="top">
    <font size="1" face="Trebuchet MS">
    <input name="deletefield" type="button" value="Delete row" onClick="deleteRow(this);return false;"></font></td>
    <td valign="top">&nbsp;</td>

Når jeg tester med følgende, får jeg kun en værdi med over, selvom jeg laver 3 rækker!

$test = array();
$test = $HTTP_POST_VARS[BCHLDKX];
echo "<br>array test: ".$test;
echo "<br>array count: ".count($test);

Nogen der kan hjælpe?
Avatar billede sbay Nybegynder
05. juli 2007 - 08:25 #1
Okay har fundet problemet - men mangler løsningen! Inden jeg laver en tom række og muligheden for at indsætte flere rækker, har jeg while-løkke der laver et vilkårligt antal rækker med eksisterende data. Hvordan får jeg fortalt

var tr = tb.getElementsByTagName("tr")[1];

at "1" nogle gange skal være 3 - andre gange 8 - afhængigt af min tæller-variabel?
Avatar billede sbay Nybegynder
22. april 2008 - 13:10 #2
Løst
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester