Bild ID übernehmen
Christian85
- javascript
0 Steel0 Don P0 Christian850 Don P0 Christian850 Don P0 Christian850 Don P
0 Vinzenz Mai0 Christian850 Don P
Moin Moin,
ich komme einfach nicht weiter. Habe 10 kleine Bilder, die stelle ich so da:
<img style="border: 0px solid ; width: 134px; height: 93px;" alt="" onmouseover="document.bild.src='<?php print $record->g1; ?>'" src="<?php print $record->k1; ?>" />
und das zweite eben so:
<img style="border: 0px solid ; width: 134px; height: 93px;" alt="" onmouseover="document.bild.src='<?php print $record->g2; ?>'" src="<?php print $record->k2; ?>" />
das große Bild lasse ich dann so austauschebn:
<img src="<?php print $record->default; ?>" name="bild" width="722" height="500" border="0"/>
wenn ich also über ein kleines Bild fahre, dann bekomme ich darunter das große Bild angezeigt. Das klappt auch alles soweit.
Nun habe ich ein Feld das nenne ich so:
<input type="text" name="bildurl" id="bildurl">
so wenn ich nun über das kleine Bild fahre um mir das in groß anzuschauen, sollte ein Wert in das Feld geschrieben werden also z.B. der Bildpafd. den habe ich ja in <?php print $record->g2; ?> wie kann ich das denn machen? Ich hoffe ich kann das so umsetzten dass ich das selber füllen lasse in dem ich mit der Maus über das Bild fahre. Leider kenne ich mich mit JS noch nicht so sehr aus. Danke schon mal für eure Hilfe und wünsche euch noch einen schönen Abend.
Gruß,
Christian
Hi!
Du präsentierst hier PHP Code und kein HTML. Hast aber eine Javascriptfrage. PHP hat nichts mit JS zu tun. PHP ist serverseitig. Javascript läuft im Client.
Wenn Deine Seite also im Browser ist, weiß dieser nichts von '<?php print $record->g2; ?>'.
So nebenbei bemerkt ist dein Code auch eher suboptimal. Aber Du kannst gern so weitermachen und halt die Anzeige des Pfades genauso fest in deinen Scriptbereichen verdrahten. Generiere also in jedem Mouseover das noetige Javascript und füge dort mit PHP deinen Pfad ein.
Zur Verbesserung deines Codes: Styleangaben und Eventhandler gehören raus aus den Tags. Erstelle eine CSS Datei mit den noetigen Styleangaben und am Besten genauso eine JS-Datei mit den nötigen Funktionen und Eventhandlern.
Hallo,
So nebenbei bemerkt ist dein Code auch eher suboptimal. Aber Du kannst gern so weitermachen und halt die Anzeige des Pfades genauso fest in deinen Scriptbereichen verdrahten. Generiere also in jedem Mouseover das noetige Javascript und füge dort mit PHP deinen Pfad ein.
was meinst du denn damit? Ich kann dem Bild auch noch eine ID mitgeben, das würde ich dann so machen:
<img style="border: 0px solid ; width: 134px; height: 93px;" alt="" onmouseover="document.bild.src='<?php print $record->g1; ?>'" bildid="b1user" src="<?php print $record->k1; ?>" />
<img style="border: 0px solid ; width: 134px; height: 93px;" alt="" onmouseover="document.bild.src='<?php print $record->g2; ?>'" bildid="b2user" src="<?php print $record->k2; ?>" />
kann ich da denn mit JS drauf zugreifen und das in mein Feld eintragen lassen?
Gruß,
Christian
Hallo,
ich habe jetzt heute morgen auch schon mal bei Google gesucht aber nichts gefunden wie ich das mit JS machen könnte, dass ich wenn ich über die Maus Bild fahre bzw. auf das Bild klicke, dass ich dann unten auch die Bildid in meinem Imput Feld habe :-(
Ich hoffe Ihr habt eine Idee.
Gruß,
Christian
Hi!
So nebenbei bemerkt ist dein Code auch eher suboptimal. Aber Du kannst gern so weitermachen und halt die Anzeige des Pfades genauso fest in deinen Scriptbereichen verdrahten. Generiere also in jedem Mouseover das noetige Javascript und füge dort mit PHP deinen Pfad ein.
was meinst du denn damit?
Damit meine ich, dass man normalerweise eine Funktion fuer sowas hat und nicht alles statisch an die Elemente bindet. Du kannst aber natuerlich den JS Code fuer dein Anliegen weiterhin statisch an die Elemente pappen und um Code fuer dein Problem erweitern. Eigentlich muesstest Du erstmal lernen, vernuenftigen Code zu produzieren und zu verstehen, was genau du machst. Das bringt dich aber ja bei deinem akuten Problem erstmal nicht weiter. Code kann man spaeter immer noch umschreiben und optimieren. Das mache ich dauernd, weil oft erstmal schnelle schmutzige Loesungen gefordert sind.
Das was Du da machst ist etwas, das ich hier mal als "blutiger Anfaengerstil" bezeichnen moechte. Dein Problem scheint zu sein, dass Du Anfaenger in allen angeschnittenen Bereichen. (HTML, CSS, JS und serverseitiger Programmierung) zu sein scheinst und trotzdem das volle Programm faehrst. Frei nach dem Motto: Ich kann zwar nichtmal ordentlich Mofa fahren aber nehm mal eben den Panzer hier zum einkaufen. Da ist es dann etwas schwieriger vernuenftig zu helfen.
Schliesslich postests Du hier schon wieder php code, der immer noch nichts mit JS zu tun hat. Gewoehnlich ist fuer so ein Problem wie deines nicht er serverseitige Code wichtig, sondern der, den der Browser bekommt.
<img style="border: 0px solid ; width: 134px; height: 93px;" alt="" onmouseover="document.bild.src='<?php print $record->g1; ?>'" bildid="b1user" src="<?php print $record->k1; ?>" />
<img style="border: 0px solid ; width: 134px; height: 93px;" alt="" onmouseover="document.bild.src='<?php print $record->g2; ?>'" bildid="b2user" src="<?php print $record->k2; ?>" />
>
> kann ich da denn mit JS drauf zugreifen und das in mein Feld eintragen lassen?
Was soll denn "bildid" fuer ein Attribut sein? Das gibts nicht. Das Attribut "id" gibt es allerdings.
Dein eigentliches Problem, den Pfad zum Bild darzustellen fasst Du damit aber immer noch nicht an. Wie oben schon erwaehnt, hast Du ja wohl funktionierenden Code, den Du einfach um die Pfadanzeige erweitern kannst. Ich habe dich doch richtig verstanden, dass Du beim Mouseover nicht nur das Bild geaendert, sonden auch den Pfad zum Bild angezeigt haben moechtest? Also fuege doch einfach dem Eventhandler den entsprechenden Befehl hinzu. Wo genau liegt hier Dein Problem?
Du hast erwaehnt, dass dein php den Pfad kennt. Du hast also ein Inputfeld, die Referenz dazu und den Wert der dort eingetragen werden soll. Eigentlich ist alles da und du musst es nur noch in den jeweiligen Eventhandler schreiben. (Ich wuerde eine Id als Referenz allerdings einem Namen vorziehen)
Finde also heraus, wie Du die Inputbox referenzierst. Wie greifst Du darauf zu?
Waehle die Eigenschaft, die du fuer dein Vorhaben benoetigst.
Weise dieser Eigenschaft den gewuenschten Wert zu.
Fuege den Code deinem Eventhandler hinzu.
Ersetze die entsprechenden Werte mit PHP.
--
"Die Diebesgilde beklagte sich darueber, dass Mumm in aller Oeffentlichkeit behauptet hatte, hinter den meisten Diebstaehlen steckten Diebe."
- T. Pratchett
Hallo,
Nun habe ich ein Feld das nenne ich so:
<input type="text" name="bildurl" id="bildurl">
>
> so wenn ich nun über das kleine Bild fahre um mir das in groß anzuschauen, sollte ein Wert in das Feld geschrieben werden also z.B. der Bildpafd. den habe ich ja in `<?php print $record->g2; ?>`{:.language-php}
Nein, du hast ihn in der Eigenschaft "src" des Objekts "bild" im aktuellen Dokument, also in `document.bild.src`{:.language-javascript}. Wenn du mit der Maus drüberfährst, ist mousover am Zug und erstzt das Bild. Jetzt willst du außerdem noch den Pfad in das Feld namens bildurl schreiben lassen, dann tu's doch einfach: Notiere die zusätzliche Anweisung in der mouseover-Funktion:
`onmouseover="document.bild.src='<?php print $record->g2; ?>'; document.bildurl.value=document.bild.src;"`{:.language-javascript}
Gruß, Don P
Hallo,
onmouseover="document.bild.src='<?php print $record->g2; ?>'; document.bildurl.value=document.bild.src;"
vielen Dank für deine Antwort, ich habe es jetzt mal so gemacht:
<img style="border: 0px solid ; width: 134px; height: 93px;" alt="" onmouseover="document.bild.src='<?php print $record->g2; ?>'; document.bildurl.value=document.bild.src;" src="<?php print $record->k2; ?>" />
mein Feld sieht so aus:
<form id="form1" name="form1" method="post" action="">
<div align="left">
<input type="text" name="bildurl" id="bildurl" />
</div>
</form>
so wenn ich jetzt mit der Maus über das zweite Bild fahre, dann müsste ja unten im meinem Feld das drin stehen. Aber das ist leider nicht der Fall :-(
Gruß,
Christian
Hallo,
<form id="form1" name="form1" method="post" action="">
<div align="left">
<input type="text" name="bildurl" id="bildurl" />
</div>
</form>
>
> so wenn ich jetzt mit der Maus über das zweite Bild fahre, dann müsste ja unten im meinem Feld das drin stehen. Aber das ist leider nicht der Fall :-(
Natürlich nicht. "bildurl" liegt ja auch nicht im document, sondern in einem DIV in "form1". Das `document.bildurl.value`{:.language-javascript} war nur ein Schnellschuß von mir, um die Richting zu zeigen. Du musst schon die Eigenschaft "value" (das ist der Textinhalt) deines input-Felds erwischen, d.h. zuerst musst du mal das richtige input-Feld ansprechen. Wie das geht? z.B. mit <http://de.selfhtml.org/javascript/objekte/document.htm#get_element_by_id@title=getElementById>.
Gruß, Don P
Hallo,
danke für deine Gedult. Ich habe es jetzt mal so versucht:
<img style="border: 0px solid ; width: 134px; height: 93px;" alt="" onmouseover="document.bild.src='<?php print $record->g2; ?>'" onclick="javascript: document.getElementById('bildurl').value='k1';" src="<?php print $record->k2; ?>" />
also ich habe jetzt mal das onklick eingefügt. Das geht auch soweit. Aber wenn ich dasd mit dein das onmouseover geht es leider nicht mehr. Kannst du mir da vielleicht noch mal helfen? Sonst muss ich das eben mit dem onclick lassen
Gruß,
Christian
Hallo,
<img style="border: 0px solid ; width: 134px; height: 93px;" alt="" onmouseover="document.bild.src='<?php print $record->g2; ?>'" onclick="javascript: document.getElementById('bildurl').value='k1';" src="<?php print $record->k2; ?>" />
>
> also ich habe jetzt mal das onklick eingefügt.
Wieso denn jetzt onclick? Du wolltest es doch beim Überfahren haben:
> wenn ich nun über das kleine Bild fahre um mir das in groß anzuschauen, sollte ein Wert in das Feld geschrieben werden
Dafür ist mouseover zuständig.
> `onclick="javascript: document.getElementById('bildurl').value='k1';" `{:.language-javascript}
> Das geht auch soweit.
\*Was\* geht soweit? Du hast nach dem Klicken jetzt "k1" im Inputfeld stehen, aber nicht den Bildpfad beim Überfahren, was du doch wolltest, oder?
Anscheinend verwechselst du noch immer JavaScript und PHP. Dein JavaScript kennt keine Variable k1, die existiert nur in PHP. Der Pfad steht also nicht in k1, sondern wie gesagt in `document.bild.src`{:.language-javascript}, denn dort hast du ihn ja mit mouseover reingeschrieben:
`onmouseover="document.bild.src='[dein PHP-Code]';"`{:.language-javascript}
Gruß, Don P
Hallo,
*Was* geht soweit? Du hast nach dem Klicken jetzt "k1" im Inputfeld stehen, aber nicht den Bildpfad beim Überfahren, was du doch wolltest, oder?
nein das war nie das was ich eigentlich wollte :-) ich wollte einfach dem Bild ein Wert mitgeben, dass ich später auf einer anderen Seite wieder was auslesen kann. Was für ein Wert das ist, ist mir eigentlich egal, denn den ordne ich ja in der DB dann dem Bild wieder zu. Also wäre das mit dem "k1" ganz OK. Sorry kann auch sein, dass ich das falsch rüber gebracht habe.
Jetzt möchte ich das eben nur noch haben, wenn ich mit der Maus drüber fahre, dass ich das dann wechselt und nicht bei klick ansonsten passt soweit alles.
Gruß,
Christian
Hallo,
Jetzt möchte ich das eben nur noch haben, wenn ich mit der Maus drüber fahre, dass ich das dann wechselt
Das hast du doch mit ~~~javascript onmouseover="document.bild.src='[dein PHP-Code]';"
> und nicht bei klick
Warum schreibst du dann extra onclick=... wenn du gar nicht willst, dass beim Klick etwas passiert? Schreib das Zeug da rein, wo es hingehört: onmouseover ist dein Freund.
Gruß, Don P
Hallo,
vielen Dank nochmals für die große Gedult. Ich habe es nun endlich hinbekommen. Hier mein Ergebnis:
<img style="border: 0px solid ; width: 134px; height: 93px;" alt="" onmouseover="document.bild.src='<?php print $record->g1; ?>'; javascript: document.getElementById('bildurl').value='k1';" src="<?php print $record->k1; ?>" />
<img style="border: 0px solid ; width: 134px; height: 93px;" alt="" onmouseover="document.bild.src='<?php print $record->g2; ?>'; javascript: document.getElementById('bildurl').value='k2';" src="<?php print $record->k2; ?>" />
<img style="border: 0px solid ; width: 134px; height: 93px;" alt="" onmouseover="document.bild.src='<?php print $record->g3; ?>'; javascript: document.getElementById('bildurl').value='k3';" src="<?php print $record->k3; ?>" />
<img style="border: 0px solid ; width: 134px; height: 93px;" alt="" onmouseover="document.bild.src='<?php print $record->g4; ?>'; javascript: document.getElementById('bildurl').value='k4';" src="<?php print $record->k4; ?>" />
<?php
if (false === empty($record->g5))
{
?> <img style="border: 0px solid ; width: 134px; height: 93px;" alt="" onmouseover="document.bild.src='<?php print $record->g5; ?>'" src="<?php print $record->k5; ?>" />
<?php
}
else
{
?>
<?php
}
?>
Gruß,
Christian
Hallo,
vielen Dank für deine Antwort, ich habe es jetzt mal so gemacht:
<img style="border: 0px solid ; width: 134px; height: 93px;" alt="" onmouseover="document.bild.src='<?php print $record->g2; ?>'; document.bildurl.value=document.bild.src;" src="<?php print $record->k2; ?>" />
es wäre eine verflixt gute Idee, den HTML-Code mit eingebettetem Javascript zu zeigen, der im Browser ankommt.
PHP-Code zu zeigen, wenn man ein HTML-, Javascript- oder SQL-Problem hat, ist im Allgemeinen keine gute Idee - aber das hat Dir Steel ja schon zweimal gesagt.
Freundliche Grüße
Vinzenz
Hallo,
es wäre eine verflixt gute Idee, den HTML-Code mit eingebettetem Javascript zu zeigen, der im Browser ankommt.
wasm einst du denn damit? Ich habe kein JS Code, ich habe nur das, was ich hier auch schreibe :-(
Gruß,
Christian
Hallo,
*augenverdreh*
JS = JavaScript, und das: <?php print $record->g2; ?> ist nicht JavaScript, sondern PHP, eine völlig andere Programmiersprache, die kein Browser jemals zu sehen bekommt.
Hier ist die Rubrik "JavaScript". Es gibt auch eine Rubrik "PHP", aber keine für beides.
Gruß, Don P
Hallo,
Hier ist die Rubrik "JavaScript". Es gibt auch eine Rubrik "PHP", aber keine für beides.
achso das meint ihr. Naja ich habe eben alles rein kopiert was ich hatte. Sorry. Aber ich habe hier http://forum.de.selfhtml.org/?t=191395&m=1276495 das mit dem JS schon mal ein weing hinbekommen. Da ist nun auch das JS drin.
Gruß,
Christian