Forum: PC-Programmierung html / java, variable aus URL auslesen und verarbeiten


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Daniel D. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich versuche gerade aus einer URL

http://127.0.0.1:8000/?question=solved

Die Variable auszulesen und weiter zu verarbeiten.
<script>
function myFunction() {
    var myParam = location.search.split('question=')[1]
    document.getElementById("myText").innerHTML = myParam;
}
</script>

<body onload="myFunction()">

<span id="myText"></span>


Wie bekomme ich das jetzt so hin, dass ich damit weiterarbeiten kann?
{% if myText == 'solved'%}
<p> ja, bereits erledigt</p>
{% else %}
<p> noch nicht erledigt</p>
{% endif %}

von Weinbauer (Gast)


Bewertung
0 lesenswert
nicht lesenswert

von codein (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
Ich sehe zwar Text mit Auszeichnungen welche irgendwie nach HTML 
riechen,
aber nirgends sehe ich Java Code...

von Thorben R. (camyono)


Bewertung
0 lesenswert
nicht lesenswert
Du hast ja bereits eine Möglichkeit gefunden:
<script>
function myFunction() {
    var myParam = location.search.split('question=')[1]
    document.getElementById("myText").innerHTML = myParam;
}
</script>

<body onload="myFunction()">

<span id="myText"></span>

Nur in diesem Fall möchtest du ja nicht myText abfragen, sondern myParam 
und den Textwert vom p-Tag setzen:
  if (myParam == "solved") {
    document.getElementById("PElementWithResult").innerHTML = "ja, bereits erledigt";
  } else {
    document.getElementById("PElementWithResult").innerHTML = "noch nicht erledigt";
  }

Ich hoffe ich habe Dich richtig verstanden. Deine Frage hat übrigens 
nichts mit Java zu tun.

von DPA (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ich mache gerne solche Dinge:
Object.defineProperty(Location.prototype, "get", {
  get(){
    var result = {};
    Object.setPrototypeOf(result, null);
    this.search.substr(1).split('&').map(x=>{
      var r = x.match(/^([^=]*)(=(.*))?$/);
      return [r[1], r[3]].map(x=>x!==undefined?decodeURIComponent(x):null);
    }).reduce( (o,[k,v]) => (o[k]=v,o), result );
    Object.seal(result);
    Object.freeze(result);
    return result;
  },
  configurable: false,
  enuimerable: true
});
Danach kann man folgendes tun:
alert(location.get.question);

Das behandelt zwar Parameter wie z.B. "?a[]=1&a[]=2" noch nicht, ist 
aber trotzdem ganz Praktisch.

Welche Templateingsprache ist das {% %} zeug eigentlich? Dir Client Side 
JavaScript wird die bei Serverseitigen Templateengines nicht 
weiterhelfen.

von DPA (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Edit: sollte "configurable: true" und "enumerable" stat "enuimerable" 
sein, zu schnell gesendet.

von Frank L. (Firma: Flk Consulting UG) (flk)


Bewertung
0 lesenswert
nicht lesenswert
// RegEx: http://stackoverflow.com/a/1404100/451634
function getURLParameter(name) {
  var value = decodeURIComponent((RegExp(name + '=' + '(.+?)(&|$)').exec(location.search) || [, ""])[1]);
  return (value !== 'null') ? value : "";
}

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.