Toon posts:

JS: Waarde vanuit een array/tabel naar een nieuwe pagina

Pagina: 1
Acties:
  • 137 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Als redelijke newbie binnen Javascript loop ik tegen het volgende probleem aan. Ik heb een array gevuld vanuit een SQL-query en laat de array vervolgens via een for-loop in een tabel zien. Nu wil ik echter dat vanuit een tabelelement, d.w.z. de array dus, een nieuwe pagina wordt geopend waarbij de waarde van het tabel- of arrayelement wordt meegegeven en/of in de nieuwe pagina beschikbaar is.

Bijv.

Array(0) = "Piet"
Array(1) = "Kees"
Array(2) = "Jan"
Array(3) = "Klaas"

Tabel:
Piet
Kees
Jan
Klaas

Met een onclick bij tabelelement "Piet" wil ik een nieuwe pagina openen waarbij ik de waarde "Piet" beschikbaar heb in een variabele. Hoe ik dit echter voor elkaar krijg, als het al kan, ben ik nog niet achter.

  • disjfa
  • Registratie: April 2001
  • Laatst online: 12-05 15:11

disjfa

be

de gegevens meesturen naar de nieuwe pagina.
de gegevens opvragen vanuit de nieuwe pagina

kan allemaal.

zoek eens op window.opener

disjfa - disj·fa (meneer)
disjfa.nl


Verwijderd

Topicstarter
>zoek eens op window.opener
>
Dat fenomeen ken ik. Een nieuwe pagina openen is het probleem ook niet. Maar op het moment dat de tabel is opgebouwd via de for-lus heb ik daarna niet meer de waarde van het array-element die ik net heb afgedrukt. Als de tabel er staat en ik klik dan op een tabelelement kan ik volgens mij niet meer achterhalen welk element (0, 1, 2 of 3) uit de array het precies betrof en kan ik dus de bijbehorende waarde uit de array niet meer doorgeven of benaderen via opener.???

Maar, correct me if i'm wrong!

  • Amras
  • Registratie: Januari 2003
  • Laatst online: 01-10-2025
Je kan toch ieder tabelement een uniek id geven, dus el0, el1, el2 etc. en dan daar het getal uithalen? Je kan in die onclick functie het source element en daarvan het id opvragen dus dat moet lukken.

Verwijderd

Topicstarter
>Je kan toch ieder tabelement een uniek id geven, dus el0, el1, el2 etc. en dan >daar het getal uithalen? Je kan in die onclick functie het source element en >daarvan het id opvragen dus dat moet lukken.
>
Dit gaat me als newbie iets te snel ;-)

Een tabelelement kan je dus een uniek, niet zichtbaar, id geven?

Wat bedoel je precies met "source element"?

  • Amras
  • Registratie: Januari 2003
  • Laatst online: 01-10-2025
Een id ken je als volgt toe:
<td id="een_id">hoi</td>

Als je nu de id's van je tabelelementen als volgt toekent: el0, el1, el2 etc. (kan dus ook in je voorlus!)

en je onclick ziet er zo uit:

JavaScript:
1
2
3
4
function klikOpTabelElement() {
    var index = parseInt(this.id.replace("el",""));
    ....
}


Dan heb je dus het juiste id in handen (dit kan niet helemaal 100% werken want ik zit op school en heb het dus niet getest)

Verwijderd

Topicstarter
Als ik in de tabel dit heb staan:

document.write("<TD id='EL'+i style='font-family: Verdana, Arial; font-size: 11px;'>" + "<a href=\"#\" onClick=\"klikOpTabelElement();return false;\">" + Resultaat[i].Titel + "</a></TD>")

waarbij i dus de loop-variabel is.

en in de functie het volgende zet:

function klikOpTabelElement()
{
var Elementnummer = this.id;
document.write(Elementnummer);
}

dan wordt Undefined teruggegeven als printresultaat. Het lijkt erop dat this.id niet verwijst naar het "TD id" of iets dergelijks?

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 01:01

crisp

Devver

Pixelated

Verwijderd schreef op 17 februari 2004 @ 16:15:
Als ik in de tabel dit heb staan:

[...]
natuurlijk is this.id undefined; als je op deze manier een functie oproept draait die in de global scope, dus this verwijst naar je window object. Zelfs dan nog, als hij wel in de scope van het object van je onclick zou worden uitgevoerd verwijst this naar je anchor; je moet dus de parentNode van je anchor benaderen, en de handle naar je anchor meegeven als parameter:

HTML:
1
2
3
4
5
6
7
<table>
  <tr>
    <td id="bla">
      <a href="#" onclick="doe(this);return false;">klik</a>
    </td>
  </tr>
</table>


JavaScript:
1
2
3
4
5
6
7
8
function doe(el) {

  alert(this == window); // true
  alert(el.tagName); // A
  alert(el.parentNode.tagName); // TD
  alert(el.parentNode.id); // bla

}

Intentionally left blank


  • Amras
  • Registratie: Januari 2003
  • Laatst online: 01-10-2025
Woeps... je hebt helemaal gelijk, sorry... ik had het ook niet getest... :'(

Verwijderd

Topicstarter
Dat werkt. Bedankt voor de tips. Het enige probleem dat ik nu nog heb is dat bij:

for (i = 0; i <= opener.Aantal_Rijen - 1; i++)
{
document.write("<TD id = 'EL' + i style='font-family: Verdana, Arial; font-size: 11px;'>" + "<a href=\"#\" onClick=\"klikOpTabelElement(this);return false;\">" + Resultaat[i].Titel + "</a></TD>")

ik het niet voor elkaar krijg om TD id = 'EL' + i als EL0, EL1, El2 samen te voegen. Ik krijg steeds EL te zien namelijk. En als ik er alleen i neerzet dan krijg ik ook "i" te zien i.p.v. "0", "1", of "2"

  • Amras
  • Registratie: Januari 2003
  • Laatst online: 01-10-2025
Dit

code:
1
document.write("<TD id = 'EL' + i style='font-family: ...


moet je veranderen in:

code:
1
document.write("<TD id = 'EL" + i + "' style='font-family:  ...


Dan zou ie het wel moeten doen. ;)

[ Voor 45% gewijzigd door Amras op 17-02-2004 19:38 ]


Verwijderd

Topicstarter
Dat was het inderdaad. Thanx! Ik kom er nu wel uit verder :-)

Verwijderd

Topicstarter
Ik heb het werkend gekregen maar nu heb ik nog een vervolgvraagje:

In javascript heb ik nu:

document.write("<TD id = 'Element" + i + "' style='font-family: Verdana, Arial; font-size: 11px;'>" + "<a href=\"#\" onClick=\"klikOpTabelElement(this);return false;\">" + Resultaat[i].Titel + "</a></TD>");

maar nu wil ik het met een echo-command via PHP weergeven. Zoiets als:

echo "<TD id = 'Element\" + $Tabelrijnummer + \"' style='font-family: Verdana, Arial; font-size: 11px;'><a href=\"#\" onClick=\"javascript:klikOpTabelElement(this);return false;\">" . $rij["TITEL"] . "</a></TD>";

Dat lukt niet helemaal want:
TD id = 'Element" + i + "'
krijg ik niet voor elkaar met een variabele ($i) van PHP.

Wat ik wil bereiken is via PHP de TD id een oplopende waarde van Element0, Element1, Element2 t/m ElementN geven op het moment dat ik een tabel opbouw met rijen uit een select-query. De tabelrijen worden via een loop door het resultaat van de select-query 1 voor 1 aangemaakt met als teller de variabele $Tabelrijnummer.
Pagina: 1