Avatar billede bigo Nybegynder
24. marts 2003 - 14:33 Der er 2 kommentarer og
1 løsning

dynamisk tildeling af "linier"

Hejsa.

Jeg har noget kode der laver en linie med forskellige inputfelter.

Jeg kunne godt tænke mig denne linie blive kopieret ved tryk på en knap eg. "Ny linie". Således at man har indtastet noget i de første inputfelter og derefter trykker på "Ny linie" og får yderligere en linie.

Desuden skal der jo holdes styr på hvilke data der er indtastet i hvilke felter når jeg skal behandle data senere.

Any one..
Avatar billede tangveje Nybegynder
24. marts 2003 - 18:21 #1
Tja, du kunne overveje javascript til det. Det gør det mere dynamisk og en hel del nemmere. Ulempen er selvfølgelig at det kun virker i nogen browsere. Her er et eksempel som skulle virke i de fleste nye browsere, har dog ikke lige kunnet teste det så kan ikke gararentere at det virker.

Start med at sætte et <div> omkring dine linier (og KUN dine linier), sådan her f.eks.

<div id="linier">
Linie 1<br>
Linie 2<br>
Linie 3<br>
</div>

Og en knap til at tilføje linier :

<input type="button" value="Tilføj linie" onclick="addlines( 1 )">

Du kan endda lave en knap der tilføjer f.eks. 10 linier, sådan her

<input type="button" value="Tilføj 10 linier" onclick="addlines( 10 )">

Og dette indsætter du så bare i <head> du skal dog nok lige tilpasse koden lidt men det skulle være simpelt nok.

<script type="text/javascript">
var antal = 3 ; // Antal linier i forvejen udskrevet

function addlines( n ) {
  elm = document.getElementById('linier') ;

  for( i = 0 ; i < n ; i++ ) {
    antal++ ;
    lines .= "Linie " + antal + "<br>" ;
  }

  elm.innerHTML = elm.innerHTML + lines ;
}
</script>
Avatar billede bigo Nybegynder
25. marts 2003 - 09:22 #2
Hmm.. jeg har ikke lige kunnet få den til og virke..

Det jeg har gjort virker - næsten.. jeg kan ikke få værdier - som allerede er indtastet - med over.

kode:

<form action=$PHP_SELF method=post name=acl-change-form onSubmit='return ValiderEmail(this)'>
<table align=center id=ip-main border=1 rules=groups>
<tr><td>Tilstand</td><td>Vælg Protocol</td><td>Fra/Til IP</td><td>SubnetMaske</td><td>Equator</td><td>Service/Port</td><td>&nbsp;
</td></tr>
";
if ($nylinie)
  $antal_linier++;
else
  $antal_linier=1;
$taeller = 0;

for ($x=0; $x<$antal_linier; $x++)
{
echo "
<tbody>
<tr>
  <td rowspan=2 valign=top>
        <select name=tilstandselect[$x]>
                <option value='permit'>Tillad
                <option value='deny'>Afsl\345
        </select>
  </td>
  <td rowspan=2 valign=top>
        <select name=protocolselect[$x]>
                <option value='ip'>IP
                <option value='tcp'>TCP
                <option value='udp'>UDP
                <option value='icmp'>ICMP
        </select>
  </td>
  <td><input type=text name=ipfra[$x] onblur='ValiderIPadresse(this)'></td>
  <td><input type=text name=subfra[$x] value='255.255.255.0' onblur='ValiderSubnetmaske(this)'></td>
  <td rowspan=2 valign=top>
        <select name=equatorfraselect[$x]>
                <option value=''>-
                <option value='eq'>lig med
                <option value='gt'>større end
                <option value='lt'>mindre end
        </select>
  </td>
    <td rowspan=2 valign=top><input type=text name=porttilselect[$x] size=7 onblur='ValidatePort(this)'></td>
  <td>&nbsp;</td>
</tr><tr>
</tr><tr>
<td>&nbsp;</td><td>&nbsp;</td>  <td><input type=text name=iptil[$x] onblur='ValiderIPadresse(this)'></td>
  <td><input type=text name=subtil[$x] value='255.255.255.0' onblur='ValiderSubnetmaske(this)'></td>
  <td rowspan=2 valign=top>
        <select name=equatortilselect[$x]>
              <option value=''>-
              <option value='eq'>lig med
              <option value='gt'>større end
              <option value='lt'>mindre end
        </select>
  </td>
  <td valign=top><input type=text name=portfraselect[$x] size=7 onblur='ValidatePort(this)'></td>
";
if ($taeller == $antal_linier-1)
echo "
  <input type=hidden name=nylinie value=1>
  <input type=hidden name=antal_linier value=$antal_linier>
  <td><input type=button value='Ny Linie' onclick='document.forms[0].submit();'></td>
";
//Ovenstående input type=button er jeg lidt.......måske skulle jeg bare lave den som en type=submit..
echo "
</tr><tr>
</tr>
</tbody>
";
$taeller++;
} // end for
echo "
<tr><td colspan=7><font size=1>Vælg her hvis tilføjelse/ændring haster </font><input type=checkbox name=haster unchecked></
td></tr>
<tr><td colspan=7><font size=1>Din emailadresse - skal udfyldes!</font></td></tr>
<tr><td colspan=7>
  <input type=text name=email><input type=submit name=opdater value='Send Rettelse'>
</td></tr></table>
";
}
?>
</form>


Men her skal alle mine inputfelters værdier jo.. og der står jeg af.. sikke en masse hidden fields.. det må kunne gøres nemmere..
Avatar billede bigo Nybegynder
25. marts 2003 - 12:43 #3
fandt selv ud af det med en masse hidden fields og rawurl(en/de)code..

Ellers tak for forsøget.
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

IT-JOB

Forsvarsministeriets Materiel- og Indkøbsstyrelse

DevOps Engineer (AI) til Forsvarets nye IT-platform

KMD A/S

Project Manager

Capgemini Danmark A/S

Client Partner