Ankündigung

Einklappen
Keine Ankündigung bisher.

Seite neu laden

Einklappen

Neue Werbung 2019

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

  • #16
    also ich habe das Problem so verstanden.

    Er hat ein Formular, in dem kann er sachen löschen. wenn sie gelöscht werden (was auch funktioniert) soll nun im Formular das Zeug das gelöscht wurde nicht mehr angezeiget werden, deswegen ein refresh der Seite.
    :arrow: [URL="http://tiny.cc/0xlvv"]Wie man Fragen richtig stellt[/URL]

    Kommentar


    • #17
      Ja so sehe ich das auch.
      Aber wodurch passiert das Löschen denn?
      Doch vermutlich durch eine Benutzer-Aktion. Dadurch wird das Script neu aufgerufen. Das ist doch schon ein neues Laden der Seite.
      Solange die alten Daten nicht ausgegeben werden, bevor die Daten gelöscht wurden, braucht man auch keinen Refresh.
      Es muss eben erst verarbeitet (gelöscht) werden und dann ausgegeben werden.
      Damit sind die angezeigten Daten nämlich auch aktuell.

      Für eine Aktion des Benutzers wird die Seite damit auch nur einmal aufgerufen.

      Ich sehe da keine Notwendigkeit für ein Neuladen durch das Script.
      Wo soll das notwendig sein?
      **********************************
      Nein, ich bin nicht die Signatur.
      Ich putze hier nur.
      **********************************

      Kommentar


      • #18
        Das Script sieht so aus:
        PHP-Code:
        <?
            $mysql = "SELECT BILD_ID, BILD_ID2, BILD_ID3, NAME2A FROM ".$tb_name_03." WHERE IDENT = ".$id;
            $result = mysql_query($mysql);


            while($row = mysql_fetch_assoc($result))
            {
                if($row['BILD_ID'] == "")
                {
                $bild_01 = "dummy.jpg";
                }
                else $bild_01 = $row['BILD_ID'];
                
                if($row['BILD_ID2'] == "")
                {
                $bild_02 = "dummy.jpg";
                }
                else $bild_02 = $row['BILD_ID2'];
                
                if($row['BILD_ID3'] == "")
                {
                $bild_03 = "dummy.jpg";
                }
                else $bild_03 = $row['BILD_ID3'];

        // Bild 1 löschen
                if(isset($_POST['delete_01']))
                {
                    if(!($bild_01 == "dummy.jpg"))
                    {
                        unlink("images/user/".$bild_01);

                        $mysql = "UPDATE ".$tb_name_03." SET BILD_ID = '' WHERE IDENT = ".$id;
                        $result = mysql_query($mysql);
                        if($result)
                        {
                        echo $box_bild_01;
                        }
                        else
                        {
                        echo $box_bild_02;
                        }
                    }
                }
        ?>
        --> die Abfrage muss demnach VOR dem löschen sein, sonst weiß ich ja nicht WAS gelöscht werden soll... oder lieg ich da jetzt falsch?

        Kommentar


        • #19
          Ja sicher musst Du die Abfrage vorher machen.
          Aber alle Ausgaben, die durch die Aktion verändert werden könnten, machst Du danach.
          **********************************
          Nein, ich bin nicht die Signatur.
          Ich putze hier nur.
          **********************************

          Kommentar


          • #20

            Ich mach

            PHP-Code:
            <?
            ...
               while($row = mysql_fetch_assoc($result))
               { 
            ...
            // hier ist ein Formular, mit den Bilder und diversen Buttons
            ...
               }
            ?>
            --> wenn ich das Formular außerhalb, also NACH der Schleife mache, dann sind ja die ganzen Anweisungen die da drin stehen für die Katz, weil sie ja außerhalb keine Gültigkeit haben!

            Beispiel:
            PHP-Code:
            <?
            $bild_01 = $row['BILD_ID'];
            // $row['BILD_ID'] existiert ja nur IN der Schleife
            ?>
            Gibt es nicht irgedwas, womit man ein ganz simples "refresh" oder sowas in der Art machen kann?
            Alles was meinem Programm fehlt, ist, dass nach dem löschen die Seite nochmal neu geladen werden soll, sonst nichts, der Rest funktioniert einwandfrei.

            Kommentar


            • #21
              Ich hab jetzt folgendes gefunden:
              PHP-Code:
              <?
              ?><meta http-equiv='refresh' content='2;URL=http://localhost/www/home/PROGRAMM/index.php?section=bilder&upload=ja&id=<?=$id?>' /><?
              ?>
              --> DAS hab ich gesucht!

              Frage 1:
              Hab ich mich so unklar ausgedrückt?

              Frage 2:
              Gibt es sowas in php auch?

              Kommentar


              • #22
                Ich hab vorhin mal drauf hingewiesen, nach REFRESH zu suchen. Damit hab ich genau das gemeint. Da ich den genauen Aufbau nicht wusste, konnte ich ihn nicht sagen.

                Du hast außerdem geschrieben, Du hättest "Neuladen nach x Sekunden" gefunden. Das ist doch auch genau das hier.

                Du hattest die Lösung also schon lange.

                Ich bleibe dabei, dass Neuladen nicht nötig ist.
                **********************************
                Nein, ich bin nicht die Signatur.
                Ich putze hier nur.
                **********************************

                Kommentar


                • #23
                  Ich hab da vorhin ein anderes Beispiel gefunden ("Neuladen nach x Sekunden"), das hat nicht gepasst, aber dieses hier schon.

                  Tja, wir leben in einem freien Land, jeder kann seine eigene Meinung vertreten, aber ich glaub dennoch nicht, dass es ohne ein neu Laden gehen würde :wink:

                  Trotzdem Danke für die vielen Antworten!

                  Kommentar


                  • #24
                    kannst ja:

                    PHP-Code:
                    <?php
                    header
                    ("Location: ?"); 
                    ?>
                    versuchen

                    oder:
                    PHP-Code:
                    <?php
                    header
                    ("Location: http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/".$relative_url);
                    ?>
                    aber ich hätte auch den meta refresh genommen
                    :arrow: [URL="http://tiny.cc/0xlvv"]Wie man Fragen richtig stellt[/URL]

                    Kommentar


                    • #25
                      Nein, er kann nicht Header() verwenden, weil er unbedingt zuerst die alten falschen Daten ausgeben will und dann durch den Refresh die richtigen Daten anzeigen will.

                      Nach irgendwelchen Ausgaben funktioniert kein Header mehr. Das Thema hatten wir doch schon lange.
                      Header heißt Header, weil er vor allem anderen kommt.

                      Es bleiben nur die Möglichkeiten,
                      - die falschen Daten durch refresh aktualisieren zu lassen
                      oder
                      - die falschen Daten gar nicht auszugeben.
                      **********************************
                      Nein, ich bin nicht die Signatur.
                      Ich putze hier nur.
                      **********************************

                      Kommentar


                      • #26
                        Eine interesante Diskusion

                        Da ich sehe dass du noch immer nicht verstanden hast was Der_Gerhard dir erklären möchte, versuche ich es nochmal an einem beispiel (psoido code):

                        PHP-Code:
                        <?php
                        function löschen($bild_id){
                        mysql->delete where id $bild_id;
                        }
                        function 
                        auslesen(){
                        daten auslesen und eventuell auch schon darstellen ausgeben;
                        }
                        verbindung zur db;
                        if(
                        $_GET["bild_id"]){
                        löschen($_GET["bild_id"]);
                        }
                        auslesen();
                        ?>
                        Und somit wird erst das bild aus der db gelöscht und dann erst der neue bestand der db ausgelesen (und da ist das bild nicht mehr dabei).

                        Den Fehler von header kann man mit eine @ davor unterdrücken und dann funktionierts auch.

                        Ich hoffe das konnte dir helfen.

                        Gruß
                        bigJay

                        Kommentar


                        • #27
                          Zitat von Der_Gerhard
                          Nein, er kann nicht Header() verwenden, weil er unbedingt zuerst die alten falschen Daten ausgeben will und dann durch den Refresh die richtigen Daten anzeigen will.

                          Nach irgendwelchen Ausgaben funktioniert kein Header mehr. Das Thema hatten wir doch schon lange.
                          Header heißt Header, weil er vor allem anderen kommt.

                          Es bleiben nur die Möglichkeiten,
                          - die falschen Daten durch refresh aktualisieren zu lassen
                          oder
                          - die falschen Daten gar nicht auszugeben.
                          ok ok, tut mir ja leid =(
                          :arrow: [URL="http://tiny.cc/0xlvv"]Wie man Fragen richtig stellt[/URL]

                          Kommentar


                          • #28
                            Zitat von -->bigJay<--
                            Den Fehler von header kann man mit eine @ davor unterdrücken und dann funktionierts auch.
                            Wie soll das denn gehen?
                            Meinst Du das da:
                            @header("...")
                            ?

                            Damit unterdrückst Du nur die Ausgabe der Fehlermeldung.
                            Der Header wird dadurch auch nicht gesendet, weil es ja nicht mehr geht.

                            Der Pseudo-Code zeigt genau das, was ich meine.
                            Offensichtlich hab ich mich doch nicht vollkommen unverständlich ausgedrückt.
                            **********************************
                            Nein, ich bin nicht die Signatur.
                            Ich putze hier nur.
                            **********************************

                            Kommentar

                            Lädt...
                            X