hklingel: submit einer Form mit namenskonflikt der action

Hallo,
ich benutze fuer die Fotogalerie auf meiner homepage ein fremdes System.
Nun möchte ich ein paar Änderungen vornehmen, so z.B. möchte ich einen Zwischenschritt sparen, in dem ich das Formular automatisch sende, anstelle den Klick auf einen Submit-Knopf machen zu müssen.

Dies mache ich mit:
<body onLoad="document.forms.formular.submit()>

Das Problem ist das folgende:
in dem fremden Code steht in etwa:

<form action='ziel.php' name="formular">
  <input type="hidden" name="action" value="speichern">
</form>

Wenn die Seite geladen wird und das onload-Event audgeführt wird, wird versucht an die Seite 'speichern' zu senden, anstelle von 'ziel.php'.
 Das liegt daran, dass es sowohl das form-attribut 'action', als auch den Input 'action' gibt.

Da ich nicht das ganze fremde System ändern kann, wüsste ich gerne, ob es eine Lösung für mein Problem gibt, nämlich das ich zwischen dem Attribut des Tags und der input-Variable des Tags unterscheiden kann.

Vielen Dank,
Harald

  1. Dies mache ich mit:
    <body onLoad="document.forms.formular.submit()>

    Das Problem ist das folgende:
    in dem fremden Code steht in etwa:

    <form action='ziel.php' name="formular">
      <input type="hidden" name="action" value="speichern">
    </form>

    Geht das über GET oder POST? Probier mal, das versteckte input wegzunehmen und stattdessen action='ziel.php?action=speichern' zu schreiben.

    Ansonsten ist vielleicht eine PHP-Lösung die bessere Wahl. Dann kannst du die Formularelemente mit header() mitsenden, wenn ich mich nicht täusche.

  2. Da ich nicht das ganze fremde System ändern kann, wüsste ich gerne, ob es eine Lösung für mein Problem gibt, nämlich das ich zwischen dem Attribut des Tags und der input-Variable des Tags unterscheiden kann.

    Klar kannst du die unterscheiden, du könntest zB. auch dem name-Attribut des input-Feldes einen anderen Namen geben.
    document.getElementsByName("action")[0].name="aktion";

    Interessant wäre zu wissen: tritt das Problem nur beim Absenden per JavaScript auf?

  3. Moin!

    <body onLoad="document.forms.formular.submit()>
    <form action='ziel.php' name="formular">
      <input type="hidden" name="action" value="speichern">
    </form>

    Wenn die Seite geladen wird und das onload-Event audgeführt wird, wird versucht an die Seite 'speichern' zu senden, anstelle von 'ziel.php'.
    Das liegt daran, dass es sowohl das form-attribut 'action', als auch den Input 'action' gibt.

    Ich denke, deine Fehleranalyse ist falsch.

    Obiges Formular wird mit Sicherheit an die URL "ziel.php" geschickt. Jedenfalls, wenn man es allein und einzeln in einer Seite stehen hat.

    Und da deine Fehleranalyse falsch ist, ist auch dein Lösungsansatz falsch:

    Da ich nicht das ganze fremde System ändern kann, wüsste ich gerne, ob es eine Lösung für mein Problem gibt, nämlich das ich zwischen dem Attribut des Tags und der input-Variable des Tags unterscheiden kann.

    - Sven Rautenberg

    --
    "Love your nation - respect the others."