Dyn. erzeugter Button funtzt nicht

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

  • Dyn. erzeugter Button funtzt nicht

    hallo,
    folgendes problem:

    warum funtzt der code nur wenn ich bei "form method" die eigenschaft "action=index.php" rausnehme?

    vereinfachtes beispiel:
    <?php

    echo"<form method=\"post\" >";
    $connection = ifx_connect("x", "x", "x");
    $error="1";
    $tupel_id="305";

    if ($error=="1")
    {
    echo"<br>error: $error";
    echo"<br>tupe: $tupel_id<br>";


    echo"<input type=\"submit\" name=\"report_send\" value=\"Enter error report(s)\"></input>";


    if ($report_send) //($_POST['report_send'])
    {
    echo"<br>Button funtzt<br>";
    $eintrag = "UPDATE checksup SET check1='Test456' WHERE id=$tupel_id";
    $eintragen = ifx_query("$eintrag", $connection);
    }
    }

    ?>

    so geht es in diesem beispiel.
    schreibe ich aber
    <form method=\"post\" action=\"index.php\">
    rein läd er nur die index.php neu, ohne den button zu verarbeiten.
    warum? ich komme so nciht weiter...

  • #2
    benutz mal bitte php-tags, dann macht es auch spaß deinen code zu lesen.

    Kommentar


    • #3
      warum ist

      PHP-Code:
      if ($report_send//($_POST['report_send']) 

      deine post-variable auskommentiert???
      **********
      arkos
      **********

      Kommentar


      • #4
        PHP-Code:
        <?php

        echo"<form method=\"post\" >";
        $connection ifx_connect("x""x""x");
        $error="1";
        $tupel_id="305";

        if (
        $error=="1")
        {
        echo
        "<br>error: $error";
        echo
        "<br>tupe: $tupel_id<br>";


        echo
        "<input type=\"submit\" name=\"report_send\" value=\"Enter error report(s)\"></input>";


        if (
        $report_send//($_POST['report_send'])
        {
        echo
        "<br>Button funtzt<br>";
        $eintrag "UPDATE checksup SET check1='Test456' WHERE id=$tupel_id";
        $eintragen ifx_query("$eintrag"$connection);
        }
        }

        ?>
        ($_POST['report_send']) hab ich rausgenommen weil es mit ($report_send) auch gehen sollte.

        Kommentar


        • #5
          sprich du arbeitest auf php4 oder niedriger....

          - mal ganz doofe frage. wie heißt die datei, die du hier gepostet hast??? ich hoffe, die heißt index.php und nicht etwa index2.php oder so?!?

          - geht dein <form>-tag auch irgendwo zu? manche browser nehmen dir das überl, sollte das nicht der fall sein...


          edit: benutze dennoch $_POST - sonst hast du pflege-aufwand, solltest du mal auf php5 wechseln...
          **********
          arkos
          **********

          Kommentar


          • #6
            Original geschrieben von arkos
            sprich du arbeitest auf php4 oder niedriger....

            - mal ganz doofe frage. wie heißt die datei, die du hier gepostet hast??? ich hoffe, die heißt index.php und nicht etwa index2.php oder so?!?

            - geht dein <form>-tag auch irgendwo zu? manche browser nehmen dir das überl, sollte das nicht der fall sein...


            edit: benutze dennoch $_POST - sonst hast du pflege-aufwand, solltest du mal auf php5 wechseln...
            genau, index.php ist richtig!
            so, was den form tag angeht hast du mich auf eine idee gebracht.
            er ging nirgendswo zu...
            allerdings macht es keinen unterschied wenn ich unten </form> hinsetze,

            das formular wird immernoch zurückgesetzt...
            was kann es noch sein?

            Kommentar


            • #7
              du hast auch sicher dein error_reporting(E_ALL); gesetzt?

              Hört sich atm alles ein bisschen kurios an.

              Drückst du nur return, oder klickst du mit der Maus auf den Button?

              Kommentar


              • #8
                Original geschrieben von TobiaZ
                du hast auch sicher dein error_reporting(E_ALL); gesetzt?

                Hört sich atm alles ein bisschen kurios an.

                Drückst du nur return, oder klickst du mit der Maus auf den Button?
                error_reporting(E_ALL); hab ich grade eingefügt, da hat er nur ein paar variablen bemängelt die ich nicht deklariert habe.

                ich klicke mit der maus auf die buttons.

                sag ich ihm mit <form method=\"post\" action=\"index.php\"> nicht dass er nach dem abschicken die index neu laden soll oder so?

                der button der nicht funtzt wurde ja erst durch den ersten button erzeugt. damit kann es nicht zusammenhängen oder?

                Kommentar


                • #9
                  Original geschrieben von mruniversum700

                  sag ich ihm mit <form method=\"post\" action=\"index.php\"> nicht dass er nach dem abschicken die index neu laden soll oder so?

                  ja, aber nicht im sinne eines refreshs - eigentlich wäre es glaube ich schlauer es wie folgt auszudrücken: du sendest die formulardaten an die index.php, die dann von oben neu abgearbeitet wird - und die daten verarbeiten kann.

                  wo bei dir der haken ist, ist mir gerade ein riesen rätsel...

                  ich kopier mit dein code gleich mal und teste den bei mir...
                  **********
                  arkos
                  **********

                  Kommentar


                  • #10
                    also: auf php 5.04 funktioniert genau dieser code
                    (db-funktionen natürlich auskommentiert)

                    PHP-Code:
                    <?php

                    echo"<form method=\"post\" action=\"index.php\">";
                    //$connection = ifx_connect("x", "x", "x");
                    $error="1";
                    $tupel_id="305";

                    if (
                    $error=="1")
                    {
                    echo
                    "<br>error: $error";
                    echo
                    "<br>tupe: $tupel_id<br>";


                    echo
                    "<input type=\"submit\" name=\"report_send\" value=\"Enter error report(s)\"></input>";
                    echo
                    "</form>";

                    if (
                    $_POST['report_send']) //($_POST['report_send'])
                    {
                    echo
                    "<br>Button funtzt<br>";
                    //$eintrag = "UPDATE checksup SET check1='Test456' WHERE id=$tupel_id";
                    //$eintragen = ifx_query("$eintrag", $connection);
                    }
                    }

                    ?>

                    ausgabe nach klick auf button:

                    error: 1
                    tupe: 305

                    [Enter error report(s)]

                    Button funtzt


                    betreibst du den server selbst? kannst du updaten?
                    **********
                    arkos
                    **********

                    Kommentar


                    • #11
                      so, danke erstmal für die ganze mühe,
                      aber ich glaube ich habe den fahler gefunden!

                      der button der erzeugt wird, ist in der if-schleife eines anderen buttons!
                      d.h. wenn der erste button geklickt wurde und das script beendet wird, kann ich den 2. button gar nicht klicken da ja der quellcode für button 2 in der if-schleife von button 1 ist.

                      if button1
                      {
                      if button2
                      {
                      das und das
                      }
                      }

                      dann wär es logisch dass es nicht geht, wenn der code beim klick komplett neu gestartet wird, richtig?

                      Kommentar


                      • #12
                        öööööööhhhhh mag sein kommt drauf an, was die eine und was die andere if-anweisung macht. müsstest die verschachtelung schon posten.
                        **********
                        arkos
                        **********

                        Kommentar


                        • #13
                          Original geschrieben von arkos
                          öööööööhhhhh mag sein kommt drauf an, was die eine und was die andere if-anweisung macht. müsstest die verschachtelung schon posten.
                          also 500 zeilen wären zu lange oder? ;-)

                          aber sobald ich einen button klicke 'vergisst' er doch den inhalt der variablen wenn ich den nächsten klicke oder?
                          ich glaube ich habs gleich... hat ja auch lang genug gedauert!

                          Kommentar


                          • #14
                            klingt so....


                            ich denke du hast sowas:

                            if ($button1)
                            {
                            echo "button 1 gedrückt";
                            echo "<form>... <input name='button2'.... etc
                            if($button2)
                            {
                            echo "button 2 funzt..:";
                            }
                            }

                            so halt mal umgangssprachlich. wenn das der fall ist, musst du überlegen, ob die verschachtelung so gewollt, oder gar notwendig ist.

                            wenn ja, dann könntest du zb. mal über hidden-formularfelder nachdenken, die sich merken, welcher button bislang gedrückt wurde...
                            **********
                            arkos
                            **********

                            Kommentar


                            • #15
                              ja ganz genau so meine ich das!

                              und damit bin ich auch shcon beim thema hidden-formularfelder, bin grade dabei rauszufinden wie die funtzen.

                              ich probiere es gerade über einen datenbankeintrag, der mir sagt dass button1 bereits aktiviert wurde :-|

                              Kommentar

                              Lädt...
                              X