• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Syntaxhilfe dateiname + img src

Status
Für weitere Antworten geschlossen.

Chris24

Neues Mitglied
Hallo,

ich möchte gerne per Javascript an die URL verschiedene Parameter anhängen. Also z. b. so meinedatei?test=12345

Die Zahl 12345 kommt vom <a name="12345" Link>. Sollte also so sein als Script:

wd=window.open('datei.htm' + name ,'infofenster' );

Kann mir hier jemand bißchen Hilfestellung geben? Ich krieg das nicht richtig hin.


Gruß
 
Zuletzt bearbeitet:
Wenn ich das richtig verstehe, willst du den Namen des Links auslesen:

HTML:
<a name="12345" onclick="window.open('datei.htm?test='+this.name,'infofenster');">Link</a>
Wobei ich sagen muss, dass dies ein sehr unsauberer Schreib-Stil ist.

MfG

NewLord
 
Hallo,

sorry, ich lese mich in das ganze THema erst ein. Wie sähe sowas denn in sauberer Form aus? Ich habe das ganze momentan nur als funktion definiert.

Danke und Gruß
 
In sauberer Form sähe das so aus:

Vom HTML ändert sich nicht viel, außer dass im href des Links die Datei angegeben ist. Da du ein neues Fenster per JavaScript öffnen willst, musst du wissen, dass JavaScript auch abgeschaltet werden kann. Sollte dies der Fall sein, so wird kein neues Fenster per JavaScript geöffnet, sondern der Link im selben Fenster geöffnet. Dies ist zwar so nicht gewünscht, ist aber immernoch besser als wenn sich beim Klick auf den Link überhaupt nix tut.

HTML:
<a href="infofenster.htm" name="12345">Link</a>
Den nachfolgenden Code kannst du in eine externe JavaScript Datei schreiben, welche du zb. so einbinden kannst:

HTML:
<script type="text/javascript" src="javascript.js"></script>
Code:
// Wenn die Seite vollständig aufgebaut ist, dann wird die Funktion init() aufgerufen
window.onload = function() { init(); };


function init() {
    // Hier wird geprüft ob das erste Element [0] mit dem Namen 12345 schon vorhanden ist (kann ja sein, dass du den Link nicht auf jeder Seite hast)
    if(document.getElementsByName('12345')[0]) {

        // Hier wird das Element in einer Variable gespeichert (für den Fall dass man damit später noch mehr anfangen möchte)
        var infolink = document.getElementsByName('12345')[0];

        // Hier wird das Event onclick abgefangen, die Funktion blank() aufgerufen und der Name des Links mit übergeben
        infolink.onclick = function() { return blank(this.name); };    
    }
}

function blank(value) {
    // Hier wird denn das neue Fenster geöffnet und "return false" zurückgegeben
    window.open('infofenster.htm?test='+value,'infofenster');
    return false;    
}
Ist zwar deutlich mehr Aufwand, allerdings hält es letztlich die HTML Datei sauber. Ich hab es mir mittlerweile auch angewöhnt, auch die Events (onclick, onload, onkeyup, etc.), welche du auf Elemente anwenden kannst in externen Dateien anzugeben. Auch alles zwecks der Sauberkeit des HTML Codes.

MfG

NewLord
 
Hallo,

vielen Dank für die ausführliche Erklährung. Jetzt vestehe ich auch was du damit meinst. Das Script klappt wunderbar, lediglich kann ich aber den name nicht fix im Script festlegen da ich ja noch mehrere Links mit unterschiedlichem Namen habe.

Deswegen hätte ich so:
<a name="12345" onclick="window.open('datei.htm?test='+this.name,'infofenster');">ja immer von aktuellen Link den name in der URL.

Also im Endeffekt wenn alles fertig ist soll es so aussehen das der Name per php von einer Mysql tabelle befüllt wird. Dieser Name wird dann in dem Popup von der URL wieder ausgelesen und per PHP wieder mit zusätzlichen Datensätzen von einer anderen Mysql tabelle verknüpft werden.

Die Sql Ausgabe und connect usw. krieg ich hin, aber dieses variable ist schon verdammt schwer. :shock:

Gruß
 
Kleiner Tip fürs Dynamische: Papier und Bleistift und denn die Gedanken aufmalen, so wie man sich das vortstellt. Das hilft manchmal ungemein.

Du kannst den Kram mit den Fixen Sachen auch anders regeln und räumst den Quellcode damit noch ein wenig auf. Mein Gedankengang zb. wäre so gewesen:

PHP:
<a href="infofenster.php?id=<?php echo $in['id']; ?>" name="<?php echo $in['id']; ?> onclick="return blank(this.name);">Link</a>

HTML:
function blank(value) {
    window.open('infofenster.php?id='+value,'infofenster');
    return false;
}

Dürfte in deinem Fall so ziemlich das Optimale sein. Wenn du, wie du sagst, viele Links mit unterschiedlichem Namen hast, dann würde sich eventuell noch document.getElementsByTagName(); ganz gut machen. Aber so sollte es auch gehen.

MfG

NewLord
 
Hi,

nach einigen Probieren hat es geklappt. Vielen Dank dafür. Eine letzte Frage hätt ich aber noch. Wenn ich die Datei im gleichen Fenster aufmachen will wie muss das aussehen? Habe es mit Window.location.href probiert das klappt aber nicht so richtig.

Gruß
 
Einfach das ganze onclick gedüns (onclick="blank(this.name);") weglassen!?

Ich bin jetzt blos etwas verwirrt weil die ganze Zeit haste nach nem JavaScript Code für ein neues Fenster gefragt und jetzt willste das in dem selben Fenster haben. Kapier ich nicht so ganz, aber naja.

MfG

NewLord
 
Hallo,

ne, versteh mich da nicht falsch, du hast mir toll geholfen und das Problem auch so gelöst. Ich bin halt noch ziemlich neu in dem Bereich und les mich bei php, javascipt und Html gerade ein, im Internet oder über Foren. Deswegen probiere ich gerne auch verschiedene Ansätze aus um einfach auch die Erfahrung zu sammeln.

Gruß
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben