OnLoad mit PHP für Formularversand?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • OnLoad mit PHP für Formularversand?

    Ich hoffe es wurde nicht schon 100x durchgekaut, aber ich komme wirklich
    nicht weiter und benötige euren Rat.

    Ich möchte in Abhängigkeit von einer PHP Variablen ein
    HTML-Formular absenden, oder eben sonst nur auf eine
    andere Seite weiterleiten.

    Ich dachte an sowas:

    PHP-Code:
    <?php
    if($betrag!="0.00")
    {
    $link ="<body onLoad=document.forms['zahlen'].submit()>";
    echo 
    $link;
    }else
    {
    <
    a href="http://andere.de/unterseite"</a>
    }
    Dieser wilde unbeholfene Mix aus PHP und HTML funktioniert nicht.
    Sonst wäre ich nicht hier

    Genauer gesagt: es wird das Formular nicht abgeschickt.

    Könnt ihr mir verraten wie ich das doch noch hingebogen bekomme?

  • #2
    Hallo,

    anhand der Art wie der HTML-Code da eingestreut wird, tippe ich auf invalides HTML, so dass der Browser aufgrund massiver struktureller Fehler im Dokument gar nicht weiß, was er eigentlich tun soll.

    Du kannst ja mal den HTML-Code posten, der beim Browser ankommt, vielleicht bestätigt sich mein Verdacht dann.

    Weiterleiten kann man übrigens besser mit der header-Funktion und anschließendem exit.

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      Hmm das sah gar nicht gut aus:

      HTML-Code:
      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
      <HTML><HEAD>
      <META content="text/html; charset=windows-1252" http-equiv=Content-Type></HEAD>
      <BODY></BODY></HTML>
      Aber ich hab eben selbst die Lösung gefunden:

      PHP-Code:
      $link ="<body onLoad=\"document.forms['zahlen'].submit();\" >"
      Danke für deinen Hinweis

      Kommentar


      • #4
        Nachtrag zur Weiterleitung:

        Wenn ich das mit dem Header mache, erhalte ich:

        "Warning: Cannot modify header information - headers already sent by..."

        Das scheint in meinem Fall nicht praktikabel zu sein, da die Weiterleitung
        am Ende der Seite zu finden ist und auch nur bei Bedingung = false
        ausgeführt werden soll.

        Nachtrag:
        Es geht mit dem header nicht, weil ich zwar dachte, dass ich nix weiter ausgebe vor dem Aufruf des header-befehls, aber da ist noch eine Zeile vorher die wichtig ist und damit header wohl zum scheitern bringt:

        HTML-Code:
        <input type="hidden" name="zahlbetrag" value="<?PHP echo $betrag; ?>">

        Ich bin ratlos
        Zuletzt geändert von unicoder; 23.12.2010, 22:35.

        Kommentar


        • #5
          Wenn du mit header arbeitest, gibt es keine Ausgabezeile, die wichtiger ist. Du kannst PHP-Code noch und nöcher schreiben, mit dem du irgendwelche Bedingungen prüfst, aber dann musst du dich irgendwann mal entscheiden: Setzt du einen Umleitungsheader und beendest das Script oder fängst du an, irgendetwas auszugeben. Beides geht nicht und würde auch keinen Sinn ergeben.
          [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
          Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
          Super, danke!
          [/COLOR]

          Kommentar


          • #6
            Japp. Problem gelöst. Erst header im "If" verwendet und im "Else" ganz
            einfach mit Echo gearbeitet und das Formular in dieser Form gesendet:

            PHP-Code:
            $link ="<body onLoad=\"document.forms['myforms'].submit();\" >";
            echo 
            $link
            Zuvor erfolgt keine Ausgabe mehr mittels Echo. So hat es wunderbar
            funktioniert. Ich danke für die Hilfe
            Zuletzt geändert von unicoder; 26.12.2010, 11:25. Grund: Satz deutsch gemacht xD

            Kommentar

            Lädt...
            X