Problem mit JavaScript und php / Schleife
Markus
- javascript
Guten morgen liebe leut'
ich hab ein problem,
und zwar hab ich ne kleine Suchmaschine gebastelt,
die als PopUp von meiner Hauptseite erscheint und Daten aus einer Oracle-DB zieht und in Tabellenform anzeigt.
Einen Wert möchte ich als link haben und diesen wieder an die Hauptseite übergeben.
Die Werte aus der DB werden in einer While-schleife angezeigt:
while ($row =fetch($searchsql->searchresult_apt)){
print "<tr>";
print "<td><a href="search.php" name="link"onClick="show()">".$row['CODE']."</a></td><td>".$row['NAME']."</td><td>AIRPORT</td>";
print "</tr>";
}
Der funktionsaufruf "show" führt folgende funktion aus:
function show()
{
selectedText = document.anchors["link"].text;
alert (selectedText);
}
So weit so gut.
Ich bekomme aber, wenn ich auf den Link klicke, immer nur den wert des ERSTEN links. Egal auf welchen ich klicke. Ich verstehe nicht, woran das liegt.
Die Funktion wird doch jedes mal neu aufgerufen und müsste doch für jeden Schleifendurchlauf den entsprechenden Wert ausgeben...
Hoffe, ihr könnt mir helfen...
Viele Grüße
Markus
Moin!
while ($row =fetch($searchsql->searchresult_apt)){
print "<tr>";
print "<td><a href="search.php" name="link"onClick="show()">".$row['CODE']."</a></td><td>".$row['NAME']."</td><td>AIRPORT</td>";
print "</tr>";
}
Du vergibst in der Schleife immer den Namen ("link") und vor dem onClick fehlt ein Leerzeichen.
function show()
{
selectedText = document.anchors["link"].text;
alert (selectedText);
}
anchors ist ein Array. Da der Name "link" mehrfach vorkommt, wird immer nur der erste angezeigt.
MfG
Danny
Alles klaro,
vielen Dank, dann werde ich das versuchen mit einem
Zähler zu basteln!
Viele Grüße aus
Frankfurt
Markus
hi,
selectedText = document.anchors["link"].text;
Nachdem die gleiche Benennung erkannt ist: bist Du sicher, das auch IE das kann?
Sonst hilft eventuell solches:
<html>
<head>
<script language="javascript1.2" type="text/javascript">
function go(id) {
alert(document.getElementById(id).firstChild.nodeValue);
//alert(document.anchors[id].text); // Mozilla kennts
}
</script>
</head>
<body marginheight="0" marginwidth="0"">
<a name="link1" id="link1" href="#" onclick="go('link1');return false">my_link_1</a>
<a name="link2" id="link2" href="#" onclick="go('link2');return false">your_link_2</a>
</body>
</html>
Gruesse Joachim
Hm, das ist ne gute
Frage, arbeite immer mit Netscape...
Werde das mal so versuchen.
Vielen Dank für den Tip!
while ($row =fetch($searchsql->searchresult_apt)){
print "<tr>";
print "<td><a href="search.php" name="link"onClick="show()">".$row['CODE']."</a></td><td>".$row['NAME']."</td><td>AIRPORT</td>";
print "</tr>";
}
Warum übergibst du deiner Funktion nicht einfach, das was du willst:
<a href="search.php"
onClick="show(this.text)">....</a>
function show(text)
{
alert (text);
}
Geht aber nicht im Netscape 4.x
Struppi.
Hi Struppi,
onClick="show(this.text)"
Geht aber nicht im Netscape 4.x
dito IE
*bistwohlmozillaverwöhnt*
Gruesse Joachim
Hi Struppi,
onClick="show(this.text)"
Geht aber nicht im Netscape 4.x
dito IE
*bistwohlmozillaverwöhnt*
Ich hab das so vom OP übernommen.
so sollte es gehen:
<a href="test.html" onclick="alert((typeof this.text == 'undefined' ? this.innerText : this.text));return false;">testest</A>
Struppi.