URL bzw. Get- Variablen
Kurt
- javascript
0 Sven Rautenberg0 Kurt
0 Cheatah
Hallo, Ich habe ein Problem, mit den URL-Variablen-Handling von Javascript. Da ich eigentlich mit ColdFusion arbeite brauche ich JavaScript eher selten, aber ist leider manchmal Unvermeidlich.
Nun zu meinen Problem: Ich werte auf einer dynamischen Website eine Datenbank aus und wandele die Werte in Diagramme um. dafür habe ich 2 URL-Variablen bereits in der URL stehen. nun, will ich per Javascript dem Nutzer die Möglichkeit geben auf dieser Seite die Darstellungsweise der Diagramme per Dropdown ändern. Dazu soll eine weitere Variable "typ" in die URL geschrieben werden.
Die Adresse sieht ungefähr so aus:
https://.../.../charts.cfm?umf=129&fr=1
Da soll nun noch &typ=... angehängt werden.
Das Script dazu siehe unten.
<form>
<div style="margin-left:80%;margin-top:1%">Darstellung als:
<select name="mood" onchange="changemood()">
<option value="pie">Kreisdiagramm</option>
<option value="bar">Säulendiagramm</option>
<option value="line">Liniendiagramm</option>
<option value="scats">Punktdiagramm</option>
</select>
</div>
</form>
<script>
function changemood()
{
location.href(document.URL+"&type="+document.forms[0].mood.value);
}
</script>
Mein Problem ist, dass jedesmal wenn ich den Typ ändern will, diese Variable an die Adresse rangehängt wird.
z.B. https://.../.../charts.cfm?umf=129&fr=1&typ=pie&typ=bar&...
Kann ich das ändern dass die Variabel typ nicht mehr rangehängt wird sondern nur der Wert geändert wird?
Moin!
<form>
<div style="margin-left:80%;margin-top:1%">Darstellung als:
<select name="mood" onchange="changemood()">
<option value="pie">Kreisdiagramm</option>
<option value="bar">Säulendiagramm</option>
<option value="line">Liniendiagramm</option>
<option value="scats">Punktdiagramm</option>
</select></div>
</form>
Du solltest mit deinem Coldfusion hier noch ein paar Hidden-Felder mit deinen anderen URL-Parametern reinmachen, das Action-Attribut des Formulars auf deine Seitenurl (ohne Parameter) richten und mit einem ganz simplen Absenden-Button ohne Javascript arbeiten. Dann setzt dir der Browser die gesamten Parameter deiner URL automatisch neu zusammen.
Moin!
<form>
<div style="margin-left:80%;margin-top:1%">Darstellung als:
<select name="mood" onchange="changemood()">
<option value="pie">Kreisdiagramm</option>
<option value="bar">Säulendiagramm</option>
<option value="line">Liniendiagramm</option>
<option value="scats">Punktdiagramm</option>
</select></div>
</form>Du solltest mit deinem Coldfusion hier noch ein paar Hidden-Felder mit deinen anderen URL-Parametern reinmachen, das Action-Attribut des Formulars auf deine Seitenurl (ohne Parameter) richten und mit einem ganz simplen Absenden-Button ohne Javascript arbeiten. Dann setzt dir der Browser die gesamten Parameter deiner URL automatisch neu zusammen.
- Sven Rautenberg
Ok, hab das ganze serverseitig gelöst.
Für den Fall dass es jemande interessiert, es sieht jetzt so aus:
<form><cfoutput>
<div style="margin-left:75%;margin-top:1%">
<input type=hidden value=#url.umfr# name=umfr>
<input type=hidden value=#url.abt# name=abt>
<input type=hidden name=test>
<select name="type" onchange="submit">
<option value="pie" <cfif isdefined("url.type") and url.type is #url.type#>selected</cfif>>Kreisdiagramm</option>
<option value="bar" <cfif isdefined("url.type") and url.type is #url.type#>selected</cfif>>Säulendiagramm</option>
<option value="line" <cfif isdefined("url.type") and url.type is #url.type#>selected</cfif>>Liniendiagramm</option>
<option value="scatter" <cfif isdefined("url.type") and url.type is #url.type#>selected</cfif>>Punktdiagramm</option>
</select> <input type=submit value="Darstellung ändern" style="width:40%;background-color:##FFFF80;">
</div>
</cfoutput></form>
Natürlich funktioniert das so, dachte nur, ich könnte hier mal meine JavaScriptkenntnisse erweitern. Aber gut. Trotzdem danke.
Hi,
Hallo, Ich habe ein Problem, mit den URL-Variablen-Handling von Javascript.
es gibt weder URL-Variablen - nur URL-Parameter - noch ein entsprechendes Handling in JavaScript. Du kannst den Search-String als ganzes auslesen.
Da ich eigentlich mit ColdFusion arbeite brauche ich JavaScript eher selten, aber ist leider manchmal Unvermeidlich.
In dem Moment, in dem JavaScript unvermeidlich ist, hast Du ein Problem. Dann lässt sich die entsprechende Funktion nämlich als unbenutzbar definieren.
nun, will ich per Javascript dem Nutzer die Möglichkeit geben auf dieser Seite die Darstellungsweise der Diagramme per Dropdown ändern.
Warum sollte das per JavaScript passieren? Die Seite wird doch eh bereits von einem serverseitigen System erzeugt, welches auch die Links herstellen kann.
<form>
ERROR: Required attribute "action" missing.
<script>
ERROR: Required attribute "type" missing.
location.href(document.URL+"&type="+document.forms[0].mood.value);
location.href ist eine Eigenschaft, keine Methode. Dieser Code ist fehlerhaft.
Kann ich das ändern dass die Variabel typ nicht mehr rangehängt wird sondern nur der Wert geändert wird?
Könntest Du, indem Du danach suchst und es entsprechend ersetzt. Ich halte es aber für sinnfrei, das clientseitig zu machen.
Cheatah