Gerch2003: Wirklick Löschen - Abfrage

Hallo Leute,

ich bin auf der Suche nach einem kleinen Codeschnipsel der es mir ermöglicht vor dem Löschen bestimmter Sachen aus der Datenbank eine Abfrage mit ja oder nein zu haben.

In Javascript geht das ganze ja ganz einfach mit:
onclick="return confirm('Sind Sie sicher?');"

Nur da das ganze vom Browser ja ganz einfach umgangen wird, sobald Javascript ausgeschalten ist und der Browser dann ohne Abfrage löscht, hab ich mir die Frage gestellt wie man dass in Form eines Pop-Ups oder eines Texts der plötzlich erscheint mit PHP lösen könnte.

Gruß Gerch

  1. hi,

    Nur da das ganze vom Browser ja ganz einfach umgangen wird, sobald Javascript ausgeschalten ist und der Browser dann ohne Abfrage löscht, hab ich mir die Frage gestellt wie man dass in Form eines Pop-Ups oder eines Texts der plötzlich erscheint mit PHP lösen könnte.

    Du fragst ab, ob ein $_POST['löschen'] vorliegt, wenn ja, blendest du einen weiteren Button ein mit „Ja, wirklich löschen“, wenn dieser dann geklickt wird, wird gelöscht.

    mfg

    --
    echo '<pre>'; var_dump($Malcolm_Beck`s); echo '</pre>';
    array(2) {
      ["SELFCODE"]=>
      string(74) "ie:( fl:) br:> va:? ls:? fo:) rl:| n4:# ss:{ de:? js:} ch:? sh:( mo:? zu:("
      ["Meaningful"]=>
      string(?) "Der Sinn des Lebens ist deinem Leben einen Sinn zu geben"
    }
    1. Du fragst ab, ob ein $_POST['löschen'] vorliegt, wenn ja, blendest du einen weiteren Button ein mit „Ja, wirklich löschen“, wenn dieser dann geklickt wird, wird gelöscht.

      Ich bin jetzt grad drüber das anders zu lösen.
      Problem ist nur, mir zeigt es einen Parse Error an, wo irgendwie keiner zu finden ist!

      <input type=checkbox name=really value=false />

        
        
      <?php  
        
      if ($really == true); {  
        
      echo("<a href=\"?main=einsaetze_delete&id=$Einsatz->ID&datum=$Einsatz->Datum&art=$Einsatz->Art&ort=$Einsatz->Ort&einsatz=$Einsatz->Einsatz&info=$Einsatz->Info\" class=\"schrift_rot\" class=\"link\">L&ouml;schen</a>");  
      }  
        
      else	{  
        
      echo("L&ouml;schen");  
      	}  
      ?>
      
      1. Hi,

        Problem ist nur, mir zeigt es einen Parse Error an, wo irgendwie keiner zu finden ist!

        Stimmt - in deiner Problembeschreibung ist kein solcher zu finden.

        Was ist denn so schwer daran zu kapieren, dass der genaue Wortlaut einer Fehlermeldung auch wichtig sein kann, und deshalb gefälligst mit gepostet wird?

        if ($really == true); {

        Willst du hier wirklich nach dem if gar nichts machen, was du durch das Semikolon andeutest?

        MfG ChrisB

        --
        Light travels faster than sound - that's why most people appear bright until you hear them speak.
        1. »» if ($really == true); {

          Willst du hier wirklich nach dem if gar nichts machen, was du durch das Semikolon andeutest?

          Hey genau das war der ParseError. Laut der Zeilenangabe war der Fehler bei else gelegen, aber das ist jetzt ja egal.

          Im Grunde will ich mit IF abfragen ob die Checkbox true ist und dann erst den Link aktivieren. Das lässt sich aber doch nicht mit PHP machen, da ja die Seite dann neu geladen werden müsste. => Javascript will ich aber nicht anwenden.

          Helf mir bitte mal ein bischen auf die Sprünge, hast du eine Idee wie ich das realisieren könnte?
          Probiere da schon seit einer Stunde rum. Kenne mich noch nicht so gut aus und möchte es aber selbst heraus finden.

          1. Hi,

            »» if ($really == true); {

            Willst du hier wirklich nach dem if gar nichts machen, was du durch das Semikolon andeutest?

            Hey genau das war der ParseError. Laut der Zeilenangabe war der Fehler bei else gelegen, aber das ist jetzt ja egal.

            PHP *kann* nicht wissen, dass du an der Stelle nicht das meinst, was du geschrieben hast.

            Erst später findet es dann ein else, dass unter Betrachtung des vorhergehenden Codes an dieser Stelle keinen Sinn ergibt.

            Im Grunde will ich mit IF abfragen ob die Checkbox true ist und dann erst den Link aktivieren. Das lässt sich aber doch nicht mit PHP machen, da ja die Seite dann neu geladen werden müsste. => Javascript will ich aber nicht anwenden.

            Entweder, oder - da musst du dich schon entscheiden.

            MfG ChrisB

            --
            Light travels faster than sound - that's why most people appear bright until you hear them speak.
            1. Entweder, oder - da musst du dich schon entscheiden.

              Ja ich möchte Javascript nicht anwenden, da es ja im ausgeschalteten Zustand nicht funktionieren würde. Deswegen wäre es ja blöd, weil wie schon gesagt die confirm="..." wäre ja einfach. Aber funktioniert im ausgeschalteten Zustand nicht.

              1. hi,

                Ja ich möchte Javascript nicht anwenden, da es ja im ausgeschalteten Zustand nicht funktionieren würde. Deswegen wäre es ja blöd, weil wie schon gesagt die confirm="..." wäre ja einfach. Aber funktioniert im ausgeschalteten Zustand nicht.

                Was spricht denn gegen eine Kombination von Javascript und PHP? Wenn Javascript aktiviert ist, nutzt du Javascript für die Prüfung, wenn nicht greift PHP.

                mfg

                --
                echo '<pre>'; var_dump($Malcolm_Beck`s); echo '</pre>';
                array(2) {
                  ["SELFCODE"]=>
                  string(74) "ie:( fl:) br:> va:? ls:? fo:) rl:| n4:# ss:{ de:? js:} ch:? sh:( mo:? zu:("
                  ["Meaningful"]=>
                  string(?) "Der Sinn des Lebens ist deinem Leben einen Sinn zu geben"
                }
                1. Was spricht denn gegen eine Kombination von Javascript und PHP? Wenn Javascript aktiviert ist, nutzt du Javascript für die Prüfung, wenn nicht greift PHP.

                  Also wenn sowas geht dann ist das ja super, nur leider bin ich überfragt wie das funktionieren würde :-(
                  Arbeite noch nicht so lange mit der Materie

                  1. hi,

                    Also wenn sowas geht dann ist das ja super, nur leider bin ich überfragt wie das funktionieren würde :-(
                    Arbeite noch nicht so lange mit der Materie

                    Probiere doch einfach mal, wie weit du alleine kommst.

                    Baue dir zuerst eine funktionstüchtige Prüfung mit Javascript, wenn du diese hast, deaktiviere Javascript und baue eine äquivalente PHP-Prüfung.

                    mfg

                    --
                    echo '<pre>'; var_dump($Malcolm_Beck`s); echo '</pre>';
                    array(2) {
                      ["SELFCODE"]=>
                      string(74) "ie:( fl:) br:> va:? ls:? fo:) rl:| n4:# ss:{ de:? js:} ch:? sh:( mo:? zu:("
                      ["Meaningful"]=>
                      string(?) "Der Sinn des Lebens ist deinem Leben einen Sinn zu geben"
                    }
      2. Hi Gerch,

        Problem ist nur, mir zeigt es einen Parse Error an, wo irgendwie keiner zu finden ist!

        <?php
        if ($really == true); {

                               ^ was macht das da?  
          
        Grüße,  
          
        Jochen  
        
        -- 
        ![](http://www.electric-lemon.de/scribble/pics/tn_picISVj5m.png) Kritzeln statt texten: [Scribbleboard](http://www.electric-lemon.de/scribbleboard.php)
        
        1. Hallo,

          »» ~~~php

          <?php

          »» if ($really == true); {

          
          >                        ^ was macht das da?  
            
          es beginnt einen Anweisungsblock. Das ist (fast überall) erlaubt und in keiner Weise schädlich. Nur das Semikolon davor ist schädlich. Nicht dass es syntaktisch falsch wäre, nein, es schließt die if-Anweisung zweckfrei und fehlerfrei ab.  
            
          Zweckfrei ist aber ebenso der Vergleich mit der Konstanten true ("Ist es wahr, dass $really wahr ist?"). Ein einfaches  
            
             if ($really)  
            
          erfüllt denselben Zweck und ist angenehmer lesbar.  
            
          So long,  
           Martin  
          
          -- 
          Ein Snob ist ein Mensch, der sich auf ein Stachelschwein setzt, ohne eine Miene zu verziehen - nur weil ihm jemand gesagt hat, das sei ein Designersessel.
          
          1. Hi Martin

            es beginnt einen Anweisungsblock. Das ist (fast überall) erlaubt und in keiner Weise schädlich. Nur das Semikolon davor ist schädlich. Nicht dass es syntaktisch falsch wäre, nein, es schließt die if-Anweisung zweckfrei und fehlerfrei ab.

            und sorgt dafür, dass das folgende else syntaktisch falsch ist ;-)

            liebe Grüße mbr

          2. Hi Martin,

            »» »» ~~~php

            <?php

            »» »» if ($really == true); {

            
            > »»                        ^ was macht das da?  
            >   
            > es beginnt einen Anweisungsblock.  
              
            hmmmmm? wo ist bei dir der ^? Hast du ein anderes Zitatzeichen als "»»", ist es daher verschoben?  
              
            
            > Zweckfrei ist aber ebenso der Vergleich mit der Konstanten true ("Ist es wahr, dass $really wahr ist?"). Ein einfaches  
            >   
            >    if ($really)  
            >   
            > erfüllt denselben Zweck und ist angenehmer lesbar.  
              
            Für den Fall PHP magst du Recht haben. In "modernen" Programmiersprachen geht diese Schreibweise natürlich nur mit Variablen die auch "bool" sind.  
              
            Grüße, Jochen  
            
            -- 
            ![](http://www.electric-lemon.de/scribble/pics/tn_picV1_051.png) Kritzeln statt texten: [Scribbleboard](http://www.electric-lemon.de/scribbleboard.php)
            
            1. Hallo,

              »» »» »» ~~~php

              <?php

              »» »» »» if ($really == true); {

              
              > »» »»                        ^ was macht das da?  
              > »»  
              > »» es beginnt einen Anweisungsblock.  
              >   
              > hmmmmm? wo ist bei dir der ^? Hast du ein anderes Zitatzeichen als "»»", ist es daher verschoben?  
                
              nein, ich habe die Standard-Zitatzeichen. Aber die Position verrutscht natürlich abhängig von der Schriftart: In der Textarea mit konstanter Schrift zeigt das '^' auf das Semikolon, in der Postingansicht mit Syntax-Hilighting sitzt es dagegen ein Stückchen weiter hinten und rutscht mit jeder Zitatebene noch ein paar Pixel weiter:  
                
              ![](http://screenshots.kennst.net/posting.png)  
                
              In der Posting-Ansicht des Beitrags von Maxx zeigt das '^' bei mir genau auf die öffnende Klammer am Zeilenende, deswegen bin ich primär darauf eingegangen und nicht auf das Semikolon.  
                
              
              > »» Zweckfrei ist aber ebenso der Vergleich mit der Konstanten true ("Ist es wahr, dass $really wahr ist?"). Ein einfaches  
              > »»  
              > »»    if ($really)  
              > »»  
              > »» erfüllt denselben Zweck und ist angenehmer lesbar.  
              >   
              > Für den Fall PHP magst du Recht haben. In "modernen" Programmiersprachen geht diese Schreibweise natürlich nur mit Variablen die auch "bool" sind.  
                
              Ich bin diese Schreibweise von C her gewöhnt, wo ich jedesmal froh bin, dass es kein "bool" als eigenständigen Typ gibt, sondern dieser stattdessen auf einen numerischen Typ abgebildet wird. Dabei gilt ≠0 immer als true.  
                
              Ciao,  
               Martin  
              
              -- 
              Die letzten Worte der Challenger-Crew:  
              Lasst doch mal die Frau ans Steuer!
              
      3. hi,

        eine lösung für dein Problem hast du ja schon bekommen, hier nochein Tipp am Rande:

        echo("<a href="?main=einsaetze_delete&id=$Einsatz->ID&datum=$Einsatz->Datum&art=$Einsatz->Art&ort=$Einsatz->Ort&einsatz=$Einsatz->Einsatz&info=$Einsatz->Info" class="schrift_rot" class="link">L&ouml;schen</a>");

        Das kannst du mit sprint(); sauberer und übersichtlicher schreiben.

        Und 2 mal class="" verwenden ist glaube ich nicht gestattet, dafür aber ein class="schrift_rot link", habe mir aber sagen lassen, dass IE < 7 damit ihre probleme haben sollen.

        mfg

        --
        echo '<pre>'; var_dump($Malcolm_Beck`s); echo '</pre>';
        array(2) {
          ["SELFCODE"]=>
          string(74) "ie:( fl:) br:> va:? ls:? fo:) rl:| n4:# ss:{ de:? js:} ch:? sh:( mo:? zu:("
          ["Meaningful"]=>
          string(?) "Der Sinn des Lebens ist deinem Leben einen Sinn zu geben"
        }
        1. @@Malcolm Beck´s:

          nuqneH

          Und 2 mal class="" verwenden ist glaube ich nicht gestattet

          Da glaubst du richtig.

          dafür aber ein class="schrift_rot link", habe mir aber sagen lassen, dass IE < 7 damit ihre probleme haben sollen.

          Nö, haben sie nicht.

          Bei CSS haben sie Pobleme mit mehreren Klassen: http://forum.de.selfhtml.org/archiv/2009/1/t181907/#m1204202 ff.

          Qapla'

          --
          Bildung lässt sich nicht downloaden. (Günther Jauch)
          1. Bei CSS haben sie Pobleme mit mehreren Klassen: http://forum.de.selfhtml.org/archiv/2009/1/t181907/#m1204202 ff.

            Kein Wunder, CSS ist im IE < 7 ziemlich im Arsch.

            Mathias

      4. @@Gerch2003:

        nuqneH

        echo("<a href="?main=einsaetze_delete&id=$Einsatz->ID&datum=$Einsatz->Datum&art=$Einsatz->Art&ort=$Einsatz->Ort&einsatz=$Einsatz->Einsatz&info=$Einsatz->Info" class="schrift_rot" class="link">L&ouml;schen</a>");

        (1) Das generiert kein gültiges HTML: Ein Element darf jedes Attribut höchstens einmal haben, wie [Malcolm Beck´s] sagte.

        (2) Das generiert kein gültiges HTML: '&' müssen maskiert werden. HTML401 §B.2.2, SELFHTML]

        (3) Nicht maskiert werden muss hingegen 'ö' u.dgl. „[Verwende] die Zeichen in ihrer normalen Form […], anstatt Zeichen-Entity-Referenzen oder numerische Zeichenreferenzen zu verwenden. Die Verwendung von Escapes macht den Quelltext schlechter lesbar […]“ [QA-ESCAPES]

        (4) Schlechter lesbar ist der Quelltext auch durch die maskierten Anführungszeichen. Dabei gibt es doch einfache und doppelte Anführungszeichen, und die einen können unmaskiert innerhalb der anderen verwendet werden.

        Qapla'

        --
        Bildung lässt sich nicht downloaden. (Günther Jauch)
      5. @@Gerch2003:

        nuqneH

        echo("<a href="[…]" class="schrift_rot" class="link">L&ouml;schen</a>");

        Von dem ungültigen HTML mal abgesehen: Weder der eine noch der andere Klassenbezeichner ist sinnvoll.

        "link"?? Wozu? Hast du 'a'-Elemente im Dokument, die keine Links sind?

        "schrift_rot"?? „Das wirklich unempfehlenswerteste, was man machen kann, ist, präsentationsbezogene Namen zu verwenden, wie die unseligen rechts, lila, 1024, etc. Solche Namen sind um jeden Preis zu vermeiden, da sie letztlich alle Vorteile von CSS rauben, und Sie bei Darstellungsänderungen also gezwungen wären, das HTML anzupassen.“ [Meiert]

        Qapla'

        --
        Bildung lässt sich nicht downloaden. (Günther Jauch)