Avatar billede hurra Novice
11. februar 2010 - 16:24 Der er 1 løsning

iterer gennem input felter i en tabel

Hej experter,

Jeg er ved at lave en side med noget online rapportering. Jeg har en søge felt på siden, hvor med jeg kan søge på nogle personer i min database, og tilføje dem til en liste.

Denne liste er en tabel, med 3 kolonner, 1 til personens navn og 2 til 2 forskellige input felter.

Når felterne i listen er udfyldt, skal det være muligt at gemme dem i databasen, UDEN at submitte formen. Der er også mange andre felter i formen, som jeg også er ligeglad med på dette tidspunkt.

Exempel på listen:
<table id=attendees>
  <tr><td><h5>Navn</h5></td><td><h5>Timer</h5></td><td><h5>meter</h5></td></tr>
  <tr id='attendee18'>
    <td>Christina Jarkass <a href='#' onclick='remove(18)'>(X)</a></td>
    <td><input type=text name='e[18][t]'></td>
    <td><input type=text name='e[18][d]' class='distance' onKeyUp='sumMeter();'></td>
  </tr>
  <tr id='attendee30'>
    <td>Jacob Winther Sønderaas <a href='#' onclick='remove(30)'>(X)</a></td>
    <td><input type=text name='e[30][t]'></td>
    <td><input type=text name='e[30][d]' class='distance' onKeyUp='sumMeter();' ></td>
  </tr>
</table>
   
bemærk at hver række har en id, som er 'attendee' + personens id fra databasen. Navnene på felterne er egentligt bestemt ud fra at jeg skulle være smart for php, men det er egentligt ikke vigtigt længere, hvis bare denne js save funktion kommer til at virke.

Mit link til at gemme listen med:
<a href='#' onClick='storeAttendees();'>Gem timer / meter</a>

Og så til sidst det egentligt problem, hvad skal der stå i funktionen storeAttendees()
<script type="text/javascript">
  function storeAttendees() {
  }
</script>

Det 'eneste' jeg har brug for er et loop, der kan loope gennem felterne i tabellen, og e.g. kalde en ny funktion (som jeg godt selv kan skrive) med noget lign. store(attendeeId, time, distance);

Er der nogen der kan hjælpe mig på vej?
Avatar billede hurra Novice
23. februar 2010 - 20:57 #1
Løst med jquery:

var id = $(":input").filter(function(name) {return this.name.match(/e\[\d+\]\[id\]/); } );
for (var i = 0; i < id.length; ++i) {
  var ti = id[i].value;
  // Kode her
}
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