• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Variable wird nicht ausgegeben

Nafets-2014

New member
Hallo,

zur Anzeige von Bildern nutze ich folgenden Code:

Code:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Artikelbilder Ersatzteile - Intern</title>
<style type="text/css">
html,body{margin:0;padding:0}
body{font: 76% arial,sans-serif}
p{margin:0 10px 10px}
a{display:block;color: #981793;padding:10px}
div#header h1{height:80px;line-height:80px;margin:0;
  padding-top:10px;padding-left:10px;background: #EEE;color: #79B30B}
div#content p{line-height:1.4}
div#footer{background: #333;color: #FFF}
div#footer p{text-align:center;margin:0;padding:5px 10px}
div#wrapper{float:left;width:100%}
div#content{clear:left;width:100%}
div#footer{clear:left;width:100%}
#Eingabe_Artikel { background-color: #9c6; font-size:1.6em; font-weight: bold; text-align:center; }
</style>
<script type="text/javascript">
    window.onload = function () {
        document.getElementById('Eingabe_Artikel').focus();
        {
            var img = document.getElementById('id-im');
            var a = document.getElementById('id-a');
            img.onerror = function () {
                alert("Für Artikel " + this.src.replace(/^.*\/|\.[^.]+$/g, "") + " ist noch kein Bild vorhanden.");
            }
            document.getElementById('formular').onsubmit = function (e) {
                e = e || window.event;
                if (e.preventDefault) e.preventDefault();
                if (e.returnValue) e.returnValue = false;

                imgurl = (this.Eingabefeld.value.replace('.', '_') + '.jpg');
                img.src = ('Artikelbilder/' + imgurl);
                a.href = ('Artikelbilder/Artikelbilder_gross/' + imgurl);
                return false;
            }
        }
    } 
</script>
<!-- Verlinkung für Lightbox - Anfang -->
     <script src="Artikelbilder/lightbox/js/jquery-1.11.0.min.js"></script>
     <script src="Artikelbilder/lightbox/js/lightbox.min.js"></script>
     <link href="Artikelbilder/lightbox/css/lightbox.css" rel="stylesheet" />
<!-- Verlinkung für Lightbox - Ende -->
</head>
<body>
<div id="container">
  <div id="header"><h1><img src="Artikelbilder/logo.gif" alt="logo" width="215" height="71"></h1></div>
  <div id="wrapper">
    <div id="content">
        <p></p>
        <div style="text-align:center;">
	       <form id="formular">
	          <p><b>Artikelnummer:</b> <input name="Eingabefeld"  id="Eingabe_Artikel" type="text" size="24" maxlength="20" />
		      <input type="submit" value="Bild anzeigen" /></p>
	          <p> </p>
	       </form>
                   
           <!-- Lightbox dynamisch - Anfang -->
             <a href="/Artikelbilder/" id="id-a" data-lightbox="image-1"> <img src="/Artikelbilder/" id="id-im"></a>
            <!-- Lightbox dynamisch Bildanzeige- Ende  -->
         
        </div>
      </div>
 </div>
<div id="footer"><p>Testversion</p></div>
</div>
</body>
</html>

Jetzt möchte ich, dass das Eingabefeld geleert wird, was mir durch das Einfügen von
Code:
 this.Eingabefeld.value="";´
,
an der folgenden Position auch gelingt:

Code:
....
a.href = ('Artikelbilder/Artikelbilder_gross/' + imgurl);
this.Eingabefeld.value="";
return false;
....

Dabei soll aber über dem Bild der vorher eingegebene Wert (zentriert) erscheinen, was ich wie folgt lösen wollte:

Code:
....
<p id="Eingabe_Artikel"> </p>

<!-- Lightbox dynamisch - Anfang -->
     <a href="/Artikelbilder/" id="id-a" data-lightbox="image-2"> <img src="/Artikelbilder/" id="id-im"></a>
<!-- Lightbox dynamisch Bildanzeige- Ende  -->
.....

Aber das funktioniert nicht. Auch document.write funktioniert nicht. Egal welche Variable ich auch heranziehe, der Erfolg ist immer Null. Auch wenn ich die Zeile zur Löschung des Eingabewertes im Formularfeld weglasse, gibt es kein anderes Ergebnis. Was mache ich falsch? Danke für eine hilfreiche Lösung, wie ich den Code ändern muss.

Viele Grüße
Stefan
 
Ich sehe garkein Kommando welches den Wert über das Bild setzt.
Dafür würde ich sowas wie document.getElementById('Eingabe_Artikel').textContent = this.Eingabefeld.value;
oder übersehe ich es?
 
Hallo,

wenn ich in der Funktion eine globale Variable erzeuge oder innerhalb der Funktion eine andere Variable zu setzen versuche

Code:
artcode = document.getElementById('Eingabe_Artikel').value;

dann funktioniert das Laden des Bildes nicht mehr. Wo muss ich das denn positionieren, damit das trotzdem funktioniert. Oder muss ich einen andere Syntax (welche?) wählen?

Danke und Gruß
Stefan
 
Hallo,

mein Ziel ist, dass nach dem Neuladen der Seite (Formularabsendung) die Artikelnummer direkt über dem Bild angezeigt wird und das Eingabefeld wieder leer ist, so dass dort die nächste Eingabe erfolgen kann (also nach dem Laden der Seite wieder den Focus hat).
 
PHP war auch nur ein Beispiel. Der Server nimmt ja das Formular entgegen und sendet die Response. Und in dieser Response muss halt das HTML Dokument an der gewünschten Stelle den Variablenwert enthalten, der soeben entgegen genommen wurde.
 
Das ganz läuft nur im lokalen Netzwerk ohne Webserver. Insofern bleibt nur Javascript oder gibt es da noch eine andere Möglichkeit?
 
Naja, das Formular wird ja verarbeitet. Aktuell wird nach Eingabe der Nummer und Abschicken des Formulars die Seite mit Bild neu geladen und die Nummer bleibt im Eingabefeld stehen. Ich habe nun die Vorstellung, das die Nummer nicht im Eingabefeld stehenbleibt, sondern über dem Bild erscheint und der Fokus wieder auf dem Eingabefeld liegt, so dass die nächste Nummer eingegeben werden könnte. Das ganze wollte ich mit einer zusätzlichen Variablen lösen, aber das geht anscheinend mit Javascript nicht.
 
Über window.onlaod wird nch dem Abschicken des Formulars der eingegebene Wert (Artikelnummer) verarbeitet; innerhalb der Funktion ausgewertet und hier reingeschrieben:

HTML:
<a href="/Artikelbilder/" id="id-a" data-lightbox="image-1"> <img src="/Artikelbilder/" id="id-im"></a>

Daraus ergibt sich dann:
HTML:
<a href="Artikelbilder/Artikelbilder_gross/999999.jpg" id="id-a" data-lightbox="image-1"> <img src="Artikelbilder/999999.jpg" id="id-im"></a>

und somit wird das Bild angezeigt und kann dann auch vergrößert angezeigt werden (Lightbox)
 
Nafets-2014 schrieb:
Über window.onlaod wird nch dem Abschicken des Formulars der eingegebene Wert (Artikelnummer) verarbeitet;
Wenn du sowieso keine Möglichkeit hast das Formular Serverseitig zu valideren wieso dann erst abschicken?


Ersetze einfach den "submit button" <input type="submit" value="Bild anzeigen" /></p>
durch:
<button onclick="myFunction(this)">Bild anzeigen</button>

In myFunction nimmst du dann die Validierung vor.

Code:
myFunction(that){
var EingabeArtikel  that.form.Eingabefeld.value; // ist der Eingegebene wert 

}

Um das Bild nachzuladen muss du dich um ajax bemühen oder nimmst Jquery her das macht's einfacher.
 
Hallo,

also geht es nicht. Schade. Ajax steht leider auch nicht zur Verfügung. Jquery muss sicher clientseitig installiert sein? Das beherrsche ich noch weniger als Javascript, nämlich überhaupt gar nicht.

Trotzdem danke.

Viele Grüße
Stefan
 
Sorry, die Frage habe ich erst jetzt richtig interpretiert. Das Formular wird lediglich innerhalb des Browsers lokal auf einem Standard-PC verarbeitet
 
Zurück
Oben