Seite 1 von 1

Listview mit Javascript

Verfasst: Di 1. Jul 2003, 15:20
von grashopper
Hallo zusammen,
folgendes Problem (was auch sonst;-)

Ich habe 2 Frames (Kundenwunsch, ist nicht zu ändern), oben ein Menu aus 5 Presseinfos, unten Inhalt.
Im Menu sind die Headlines der Infos jeweils mit einer Buttongrafik davor.
die sich bei MouseOver ändert und bei Click die andern Buttons zurücksetzt, den eigenen Button auf den On-Zustand bringt und die entsprechende News im unteren Frame öffnet.

Das Menu soll mit den entsprechenden we:tags immer die 5 aktuellsten News darstellen, das ist auch kein Problem. Aber wie binde ich das Javascript für die Buttons ein?

Das Script sieht so aus:
var clickst=new Array(8); var bildon=new Array(8); var bildoff=new Array(8); var bildcl=new Array(8); var nr=1;
for (i=1; i<8; i++) {
clickst=0;
bildon=new Image(); bildon.src="../pix/submenu/but.gif";
bildoff=new Image(); bildoff.src="../pix/submenu/buto.gif"
bildcl=new Image(); bildcl.src="../pix/submenu/but.gif"
}
function bildan(bildnr) {nr=bildnr;
if (clickst[bildnr]==0) { document['bild' + nr].src=bildon[nr].src;}
}
function bildaus(bildnr) {nr=bildnr;
if (clickst[bildnr]==0) { document['bild' + nr].src=bildoff[nr].src}
}
function bildclick(bildnr) {nr=bildnr;
for (i=1; i<6; i++) {clickst=0; document['bild' + i].src=bildoff.src}
clickst[nr]=1; document['bild' + nr].src=bildcl[nr].src
}


und in den Link für die erste Info im Menu kommt dann:
ONCLICK="bildclick(1);" ONMOUSEOVER="bildan(1);" ONMOUSEOUT="bildaus(1);"

im nächsten Link dann Nummer 2 usw. bis zur 5.

Das kann natürlich nicht funktionieren, wenn ich mit we:repeat arbeite.
Es muss aber schon "automatisch" funktionieren, damit der Redakteur das Menu nicht bearbeiten muss.

Gibts da eine Lösung? Wäre super!

Verfasst: Di 1. Jul 2003, 15:47
von Dirk Einecke
Hi.

Das kann man so machen:

Code: Alles auswählen

<?php $i = 1; ?>
<we:listview>
  <we:repeat>
    <a href="<we:field name="we_path"/>" target="Framename" ONCLICK="bildclick(<?php echo $i; ?>);" ONMOUSEOVER="bildan(<?php echo $i; ?>);" ONMOUSEOUT="bildaus(<?php echo $i; ?>);"><we:field name="Feldname" type="text"/></a>
<?php $i++; ?>
  </we:repeat>
</we:listview>

Verfasst: Di 1. Jul 2003, 16:17
von grashopper
1000Dank, genau das ist es!!!!!!!!!!!!

Einfach nur genial, genau 27 Minuten nach der Frage gibts die Lösung...
GanzGrosseKlasse!!! :D :D :D :D :D

Hüstel

Verfasst: Di 1. Jul 2003, 16:50
von grashopper
ich mags ja gar nicht schreiben, :oops: aber ein Prob hab ich noch:
Sorry, aber ich habe vergessen zu erwähnen, dass Button neben dem ersten Link bei Aufruf des Framsets bereits markiert sein soll:

Hier das HTML
dabei ist "but.gif" = gewählt und "buto.gif = nichtgewählt,
jetzt nur für 2 Links, 5 sollten es ja werden.

<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td align="left">[img]../pix/submenu/but.gif[/img]

</td>
<td valign="top" nowrap><a href="DIE URL" target="unten" ONCLICK="bildclick(1);" ONMOUSEOVER="bildan(1);" ONMOUSEOUT="bildaus(1);">DER ERSTE LINK</a></td>
</tr>
<tr>
<td align="left">[img]../pix/submenu/buto.gif[/img]</td>
<td valign="top" nowrap><a href="DIE URL" target="unten" ONCLICK="bildclick(2);" ONMOUSEOVER="bildan(2);" ONMOUSEOUT="bildaus(2);">DER ZWEITE LINK</a></td>
</tr>
</table>

Würde das so ganz eventuell auch irgendwie mit we:listview und dem php-Script funktionieren können?
Tut mir leid, dass ich gleich das nächste Problem nachschiesse, aber von php habe ich leider 0 Ahnung...

Verfasst: Di 1. Jul 2003, 17:00
von Dirk Einecke
Hi.

Um den ersten Eintrag als geklickt anzuzeigen einfach nach der gesamten Listview:

Code: Alles auswählen

<script language="JavaScript" type="text/JavaScript">bildclick(1);</script>

Verfasst: Di 1. Jul 2003, 17:16
von grashopper
Okay, werde ich versuchen, besten Dank!
Aber jetzt ist - auch wenn die Forums-Zeit etwas anderes behauptet - erst einmal Feierabend!

Verfasst: Mi 2. Jul 2003, 11:36
von grashopper
Funktioniert alles super, noch einmal vielen Dank.