A. Zipser: XSL - und JS verbinden

Beitrag lesen

Hi,

Ich habe eine Liste mit Adressen , daneben erscheint ein Formular in welches man seinen Standort (Strassse, PLZ, Ort) eingibt. Über 3 Buttons besteht nun die Möglichkeit sich eine Verbindung zu der Adresse anzeigen zu lassen (map24, db, kvb [kölner verkehrsbetriebe] ) man muß halt nur auf das entsprechende Symbol klicken.

Die Übergabe an die Routenplaner, etc.. erfolgt über versteckte Formularfelder. Diese sind statisch oder werden über xsl:attribut mit Werten aufgefüllt. Problem ist jetzt aber, dass einige Felder ein Datum und eine Zeit benötigen, und diese wird via JS eingefügt. Nun läuft das aber nicht.
Ausserdem erscheint in den Eingabefeldern die Beschreibung was in dem Feld zu stehen hat, beim onFocus verschwindet dieser Hinweis, und das Feld wird frei - das funktioniert auch nicht. Könnte mir jemand vielleich in diesem Falle helfen ?

Ich habe es mit yxsl:script > versucht, funktioniert aber nicht, und man soll aauch den namespace ändern, was wiederum weitere Probleme nach sich zieht.

Ich danke im voraus für die Hilfe, mit freundlichen Grüßen,
A. Zipser

Hier nun einige Ausschnitte aus den Dateien:

Die JS datei die die Werte in die Felder der Formulare einfügt:

************************
function timeInit()
  {
   Dat = new Date();
   nachher = new Date(Dat.getTime()+(60000*15));

tag=((Dat.getDate() < 10) ? "0"+Dat.getDate() : Dat.getDate().toString());
   mon= (((Dat.getMonth()+1) < 10) ? ".0"+(Dat.getMonth()+1)+"." : "."+(Dat.getMonth()+1)+".");
   jahr=Dat.getFullYear().toString();
   std=((Dat.getHours() < 10) ? " 0"+Dat.getHours() : " " + Dat.getHours().toString());
   stdpl=((Dat.getHours()+2 < 10) ? " 0"+(Dat.getHours()+2) : " " + (Dat.getHours()+2).toString());
   stdnach=((nachher.getHours()<10)?"0"+nachher.getHours():nachher.getHours().toString());
   min = ((Dat.getMinutes() < 10) ? ":0"+Dat.getMinutes() : ":"+Dat.getMinutes().toString());
   minnach=((nachher.getMinutes()<10)?":0"+nachher.getMinutes(): ":"+nachher.getMinutes().toString());
  }

function zeitEinfueg()
  {
   timeInit();
   var datum = tag + mon + jahr;
   var uhrzeit = std + min;

document.assform.DATUM.value = datum;
   document.assform.ZEIT.value = uhrzeit;

document.DBformular.date.value = datum;
   document.DBformular.time.value = uhrzeit;
  }

function checkenUndSenden()
  {
   document.link2map24.sstreet.value = document.startfelder.startStrasse.value;
   document.link2map24.szip.value = document.startfelder.startPlz.value;
   document.link2map24.scity.value = document.startfelder.startOrt.value;

document.assform.SHS.value = document.startfelder.startStrasse.value;
   document.assform.SGE.value = document.startfelder.startOrt.value;

document.DBformular.from.value = document.startfelder.startOrt.value+' '+document.startfelder.startStrasse.value;
   zeitEinfueg();
 }
*************************

  • Auszug aus der html-Datei (wie es aussehen sollte)
    <TD class=map24_cell width="202" align="center" valign="top">
           <!-- eingabeformular -->
            <form name="startfelder" >
             <input type=text name="startStrasse" value="Strasse/Haltestelle"  class=map24_input  size=20 style="width: 179px;"
              onFocus="javascript:if (document.startfelder.startStrasse.value == 'Strasse/Haltestelle') document.startfelder.startStrasse.value = '';">
             <BR>
             <input type=text name="startPlz" value="PLZ" class=map24_input ize=5  style="width: 36px;"
               onFocus="javascript:if (document.startfelder.startPlz.value == 'PLZ') document.startfelder.startPlz.value = '';">
             <input type=text name="startOrt" class=map24_input value="K&ouml;ln" size=20 style="width: 140px;"
               onFocus="javascript:if (document.startfelder.startOrt.value == 'K&ouml;ln') document.startfelder.startOrt.value = '';"></form>
    </TD>

*****************************************

  • Auszug aus der XSL-Datei
    <TD class="map24_cell" width="202" align="center" valign="top">
                <!-- eingabeformular wie es in html stehen sollte -->
                 <form name="startfelder" >
                 <!-- <input  type="text" name="startStrasse"  value="Strasse/Haltestelle"  class="map24_input" size="20" style="width: 179px;" onFocus="javascript:if (document.startfelder.startStrasse.value == 'Strasse/Haltestelle') document.startfelder.startStrasse.value = '';" />
                  -->

<input type="text"
                name="startStrasse"
                value="Strasse/Haltestelle"
                class="map24_input"
                size="20"
                style="width: 179px;" >
               <xsl:attribute name="onClick">
                javascript:if (document.startfelder.startStrasse.value == 'Strasse/Haltestelle') document.startfelder.startStrasse.value = '';
               </xsl:attribute><!-- so funktioniert es leider nicht-->
              </input>

<BR/>
              <input  type="text"
                name="startPlz"
                value="PLZ"
                class="map24_input"
                size="5"
                style="width: 36px;"
 onFocus="javascript:if (document.startfelder.startPlz.value == 'PLZ') document.startfelder.startPlz.value = '';" />

<input  type="text"
                name="startOrt"
                class="map24_input"
                value="Köln"
                size="20"
                style="width: 140px;"
 onFocus="javascript:if (document.startfelder.startOrt.value == 'Köln') document.startfelder.startOrt.value = '';" />
             </form>
</TD>
...
<form action="http://bahn.hafas.de/bin/query.exe/dn" name="DBformular" method="POST" target="BahnPopup" onsubmit="checkenUndSenden()"><!-- hier wird nun das JS aufgerufen-->
          <input type="hidden" name="timesel" value="depart" />
          <input type="hidden" name="via.1" />
          <input type="hidden" name="to" value="Köln" />
          <input type="hidden" name="to" >
           <xsl:attribute name="value">
            <xsl:value-of select="Anfahrt/DB"/>
           </xsl:attribute>
          </input>
...