src mit variable im body

  • Hallo Profis,

    eine hoffentlich einfach zu beantwortende Frage.

    Das hier:

    <div id ="name" class="name absolute"><img src="templates/Chart_'+ workChart +'/characters/Name.png"></img></div>

    funktioniert nicht. Wieso?
    Ich würde gerne die Variable workChart in die src im body einbinden ohne irgendwelche zusätzlichen Skripte. Geht das nicht?
    Oder ist einfach die syntax wegen der "/"s unkorrekt?

    Danke für Eure Hilfe

    Garavani

  • Hallo Threadi,

    Danke erstmal für Dein Interesse!
    Ein bisschen knifflig zu erklären.
    Vorweg: bin mit JS, nicht php unterwegs (davon habe ich noch weniger, nämlich gar keine Ahnung).

    Habe eine Basis html, in die per JS (mustache.js) templates eingefügt werden. Diese template parts rufen (z.T.) auch weitere separate html Dateien auf, die Bilder benutzen.

    Wenn ich alle Bilder aller templates in einem gemeinsamen image Ordner aufbewahre, ist das gar kein Problem, alles geht glatt.
    Ich möchte aber nun, dass die Dateien und Bilder die zu je einem template gehören in dessen Unterordner aufbewahrt werden (mit dem Pfad z.B.: …templates/Chart_1/images/Xxx.gif)
    Diese Unterordner sind nummeriert (es handelt sich letztendlich um eine Art Präsentationsslider mit mehr oder weniger Verzweigung in tiefere Info/Extras).
    Was ich letztlich erreichen will, dass ich nur die Nummern der Ordner tauschen (oder z.B. neue Dateien in einem neuen Ordner dazwischen fügen) brauche, um die Reihenfolge des
    Sliders zu ändern oder neue Charts (komplette Ordner also) zu ergänzen. Wie gesagt geht alles, außer dass die per Link aufgerufenen Unterseiten ihre Bilder nicht finden*, wenn sie sich im image Ordner des eigenen Unterordners befinden.
    Daher wollte ich den Pfad zu den Bildern mit variable versehen (die selbe globale Var, die alles durchzählt)

    Konnte ich das halbwegs erklären?

    Danke vielmals!

    Garavani

    PS*
    Geht natürlich, wenn ich beim Ändern der Ordnernummerierung auch alle Links der darin liegenden Dateien per Hand ändere,
    aber dazu will ich einfach zu faul sein dürfen ;)

    Einmal editiert, zuletzt von Garavani (28. April 2013 um 07:21)

  • falsches unterforum...
    die variable muss gefüllt sein.
    du musst den kompletten string in einer variablen zwischenspeichern und später ausgeben oder sirekt ausgeben.
    die ausgabe passiert in einem solchen fall für gewöhnlich über objekt.innerHTML = variable.
    das objekt holste dir am besten, indem du dem ne id gibst und document.getElementById('DEINE_ID') benutzt.
    alterativ jquery oder ähnliches nutzen.

  • hello again,

    so I tried to do so:

    <html>
    <head>
    <head><title>TYPE LAB</title>


    <link rel="stylesheet" href="stylesheet.css" type="text/css" charset="utf-8" />


    <style>
    body {
    background-color: #ffffff;
    }
    </style>


    <script src="libs/jquery-1.9.1.min.js"></script>
    <script src="libs/jquery.easing.1.3.js"></script>
    <script src="libs/stefan_seifert.js"></script>


    <script type="text/javascript" language="JavaScript">


    var workChart = 1; //only for test here


    $(document).ready(function(){
    [INDENT]<!-- collects and makes work individual data -->
    // refreshes img and name pathes to match character work (inside respective folder)
    $name = $("#name img");
    $name.attr("src", "templates/Chart_"+ workChart +"/characters/name.png");

    for (var i=1;i<=5;i++){
    $("#letters img").attr("src", "templates/Chart_"+ workChart +"/characters/Style_reg/Letter_"+ i +".gif");
    }
    [/INDENT]
    });

    </script>


    </head>
    <body>
    <div id="letters" class="letters_fit">
    <div id="1"><img class="center fit"></img></div>
    <div id="2"><img class="center fit"></img></div>
    <div id="3"><img class="center fit"></img></div>
    <div id="4"><img class="center fit"></img></div>
    <div id="5"><img class="center fit"></img></div>
    </div>
    <div id="text" class="description pos">bla bla</div>

    <div id ="name" class ="name fixed display_none"><img></img></div>

    </body>

    </html>

    with a DOM structure as:

    and the images couldn’t be found.
    I tried similar things, that always worked, but when both html docs layed on the same level. Maybe this is the problem,
    that the path couldn’t find the start level

    Thanks for help!

    Garavani

    Einmal editiert, zuletzt von Garavani (30. April 2013 um 07:39)

  • Danke für den Tipp. geht leider nicht :(
    Hier ist irgendwas total im Eimer.
    Sobald ich die vom index aus angesteuerte Datei Type_lab.html in den Ordnern unterbringen will, gehen die Pfade total durcheinander und es geht gar nix mehr und ich blick nicht durch :cry:

    Also Datei wieder raus auf die oberste Ebene :cry:

    Garavani

  • Ich will die Type_Lab vom index aus per click öffnen in einem neuen Fenster und irgendwie eine Struktur reinbringen, die nur von der globalen Variable workChart abhängig ist,
    so dass ich nach Zufügen neuer Ordner mit Inhalten (nummeriert nach workChart) nicht jedes Mal alle Links, srcs usw. per Hand überschreiben muss.
    Aber das übersteigt wohl mein Denkvermögen.

    Was mich auch einfach kirre macht ist, dass Dinge wie das hier:

    $('#text').load('templates/Chart_" + workChart + "/characters/text.html #description');

    einfach nicht funktionieren. Ich krieg die Variablen nicht in die Pfad strings rein. :mad::mad::mad::mad:

    Mann, Mann…
    Danke für die Hilfe und Tipps

    Garavani

    - - - Aktualisiert - - -

    Jetzt funktionierts. Lag wohl an den Anführungsstrichen


    $('#text').load("templates/Chart_" + workChart + "/characters/text.html #description");

    Trotzdem musste ich mir jetzt hinten rum in der Nase bohren um die globale(!-und ich dachte immer der Sinn einer globalen variable wäre, dass sie, während User die Seite benutzt, immer und von überall erreichbar ist )
    überhaupt im neuen Fenster abrufbar zu machen


    sData = window.location.search;
    var workChart = sData.substr(11);

    $(document).ready(function(){
    [INDENT]…[/INDENT]
    [INDENT]$('#text').load("templates/Chart_" + workChart + "/characters/text.html #description");
    …[/INDENT]
    }

    und im Index:

    window.open("Type_Lab.html?workChart=1", "g","status=0");


    Kommt mir reichlich beknackt vor.
    Denke ich da irgendwie grundliegend falsch?

    Wie würdet ihr so etwas angehen?

    Danke für Eure Geduld mit einem blutigen Anfänger, der sich Zeug zusammengoogelt

    Garavani

  • krasser scheiss..^^ ich berke grad wie abhängig professionalität vom syntax-highlighting sein kann^^ mir sind die falchen gänsefüße nicht aufgefallen^^.

    zu deiner globalen variable die ist immer nur auf der seite bekannt, die du benutzt, öffnest du ein neues fenster kannst du aber auf variablen des parent-windows zugreifen.
    für dich geht nur javascript?