vulpi: Post an server, ohne reload

Hallo zusammen.
Ich habe da ein kleines Problem.

ich habe folgendes element das ich ohne reload der seiten an den "server" senden muss.
(sonst springt mein flash jedesmal an den anfang zurück)

Element:
<input type="hidden" name="id=submit action=ButtonPress(125)" value="">
(die anfrage ruft die funktion 125 in einer mediensteuerung auf, welche unser HD-Beamer startet)

wie sende ich den parameter name an den server, ohne reload der seite?
ich habe mal mit ajax rumgespielt. klapp jedoch nicht.

ajax script:

<script language="javascript">
var http = null;

if (window.XMLHttpRequest) {
   http = new XMLHttpRequest();
} else if (window.ActiveXObject) {
   http = new ActiveXObject("Microsoft.XMLHTTP");
}

//function sndReq() {

if (http != null) {
   http.open("POST", "http://192.168.0.1/main.html", true);
   http.onreadystatechange = ausgeben;
   http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
   http.send("name= id=submit action=ButtonPress(999)");  // <-- Hier soll die Übergabe erfolgen
}
//} //function
</script>

hatt jemand eine idee wieso das nicht klappt ?

  1. Hi,

    ich habe folgendes element das ich ohne reload der seiten an den "server" senden muss. (sonst springt mein flash jedesmal an den anfang zurück)

    muss es denn unbedingt mit der POST-Methode sein? Sende das einfach als GET-Formular ab und dreh das serverseitige Script so hin, dass es als Antwort nur den HTTP-Status "204 No Content" sendet. Dann bleibt der bisherige Fensterinhalt unangetastet.
    Möglich, dass das auch mit POST funktioniert, aber da bin ich nicht ganz sicher.

    <input type="hidden" name="id=submit action=ButtonPress(125)" value="">

    Seltsamer Wert für das name-Attribut. Warum bringst du nicht einfach die 125 im name unter (natürlich mit einem Buchstaben vorangestellt, weil name nicht mit einer Ziffer beginnen darf)?

    Ciao,
     Martin

    --
    Die letzten Worte des Architekten:
    Mir fällt da gerade was ein...
    1. Hi Martin danke für deine rsche antwort.
      leider muss das Attribut so aussehen.

      <input type="hidden" name="id=submit action=ButtonPress(125)" value="">

      Es wird  durch den server ausgewertet (WXL/XPL) und die entsprechende sequence in der Mediensteuerung ausgeführt.

      es könnte auch möglich sein das das ganze auch mittels GET funktioniert.

      wie müsste ich das Script auf GET ändern. (bin Javascript/Ajax neuling)

      besten dank
      Vulpi

      1. Hallo,

        leider muss das Attribut so aussehen.
        <input type="hidden" name="id=submit action=ButtonPress(125)" value="">
        Es wird  durch den server ausgewertet (WXL/XPL) und die entsprechende sequence in der Mediensteuerung ausgeführt.

        ach so, die Server-Seite existiert also schon und ist fest vorgegeben? Dann vergiss meinen Vorschlag. :-(
        Ich hatte angenommen, dass du auch die serverseitige Logik beliebig anpassen kannst.

        es könnte auch möglich sein das das ganze auch mittels GET funktioniert.
        wie müsste ich das Script auf GET ändern. (bin Javascript/Ajax neuling)

        Einfach da wo du bisher POST stehen hast, durch GET ersetzen. Aber wenn du an der Gegenseite eh nix drehen kannst, hat es keinen Wert, daran etwas zu ändern.
        Und mit den AJAX-Geschichten kann ich dir mangels eigener Kenntnisse leider auch nicht weiterhelfen.

        Ciao,
         Martin

        --
        Alkohl ist ungesund,
        Rauchen ist schädlich,
        Sex ist unanständig
        - und die Erde ist eine flache Scheibe.
        1. Denoch besten dank

    2. Hi,

      Möglich, dass das auch mit POST funktioniert, aber da bin ich nicht ganz sicher.

      Sofern der Browser es überhaupt unterstützt, funktioniert es auch mit POST.

      Gruß, Cybaer

      --
      Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
      1. Hallo Cybaer,

        Möglich, dass das auch mit POST funktioniert, aber da bin ich nicht ganz sicher.
        Sofern der Browser es überhaupt unterstützt, funktioniert es auch mit POST.

        _was_ unterstützt? Ich sprach vom 204er als Response - das macht doch der Server, was meinst du dann mit browserseitiger Unterstützung? Ich war mir bloß nicht sicher, ob ein 204er auch als Antwort auf POST zulässig ist.

        So long,
         Martin

        --
        Die letzten Worte des Architekten:
        Mir fällt da gerade was ein...
        1. Hi,

          _was_ unterstützt? Ich sprach vom 204er als Response - das macht doch der Server, was meinst du dann mit browserseitiger Unterstützung?

          Wenn der Client einen 204-Response nicht unterstützt (ja, das gibt es - muß er auch nicht), dann kann der Server 204er senden, wie er mag. Der von dir prognostizierte Effekt (Beibehaltung der aktuellen Seite) tritt nicht ein. Ein solcher Browser stellt die neue Seite (sofern Daten gesendet werden) einfach mit der entsprechenden URL in der Adresszeie dar. Werden keine Daten gesendet, dann hast Du halt nur den neuen URL - und eine leere Seite.

          Ich war mir bloß nicht sicher, ob ein 204er auch als Antwort auf POST zulässig ist.

          Deswegen die Aussage, daß *wenn* der Client 204er unterstützt, er dies auch bei POST tut (jedenfalls spricht nichts dagegen - ich kenne auch keinen Client, wo das nicht der Fall wäre, noch hätte eine eine andere Verhaltensweise ein auch nur irgendwie begründbaren Sinn). Alles andere wäre schlicht ein Bug ...

          Gruß, Cybaer

          --
          Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
  2. Hi,

    http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

    Wenn die Daten x-www-form-urlencoded sein sollen ...

    http.send("name= id=submit action=ButtonPress(999)");  // <-- Hier soll die Übergabe erfolgen

    ... dann solltest Du die Daten besser auch x-www-form-urlencoded schicken, oder?

    hatt jemand eine idee wieso das nicht klappt ?

    Der Einfachheit halber würde ich vorschlagen, die Daten also normales GET-Formular zu senden, und einfach mal zu schauen, wie sie x-www-form-urlencoded denn wirklich aussehen. =;-)

    Gruß, Cybaer

    --
    Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!