Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Löschbutton für Variblen

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Löschbutton für Variblen

    Hallo,

    also ich möchte einen längeren Text zerlegen und in einem Array abspeichern. Als Trennzeichen hab ich bei der Funktion explode einen HTML Kommentar (<!-- -->) verwendet, da ich den Text in größere Teile zerlegen muss.
    Jetzt möchte ich nach jedem einzelnen Teil einen Button anfügen, mit dem man bei Betätigung den Teil löschen kann.
    Leider komm ich aber nicht ganz weiter und würde eure Hilfe brauchen.

    Also mein Code schaut so aus:

    PHP-Code:
    <body> 
    <form name="form1" method="post" action=""> 

    <?php 
    $bol
    =file_exists("start.php"); 
          if (
    $bol) { 
               
    $datei fopen("start.php","r"); 
            if (
    $datei) { 
                  
    $dateigroesse=filesize("start.php"); 
                  
    $inhalt fread($datei$dateigroesse); 
                  
    fclose($datei); 
             } 
        } 


    $eintrag explode("<!-- -->",$inhalt);
    $ende=count($eintrag);
    $ende--;
    for ( 
    $a 1$a $ende$a++ ){  
        echo 
    $eintrag[$a]. '&nbsp<input type="submit" name="del['.$eintrag[$a].']" value="del" />';
        if(isset(
    $_POST["del".$eintrag[$a]])){
        unset(
    $eintrag[$a]);
        }

    $inhalt_neuimplode("<!-- -->",$eintrag);
      
    $bol=file_exists("start.php"); 
          if (
    $bol) { 
            
    $dateifopen("start.php","w"); 
            if (
    $datei) { 
                  
    $output fwrite($datei,$inhalt_neu); 
                  
    fclose($datei); 
             } 
          }  

    print_r ($_POST); 
    ?> 
    </form> 
    </body> 
    </html>
    Das Ergebnis von print_r($_POST) ist übrigens
    Code:
    Array (     [del] => Array         (             [dann der Teil der gelöscht werden soll] => del         )  )

  • #2
    Hallo,

    ich würde hier entweder den Teil, der gelöscht werden soll als Hidden-Text mitgeben oder diesen mit einer ID referenzieren. Anschließend kannst du diesen dann per str_replace() oder per unset() löschen.

    Kommentar


    • #3
      bin noch ein ziemlicher Anfänger

      Wie meinst du mit hidden-text, oder id?

      Danke für die schnelle Antwort

      Kommentar


      • #4
        bin noch ein ziemlicher Anfänger
        Dann solltest du dir dringend die Grundlagen zu HTTP, HTML und PHP reinziehen!

        Wie meinst du mit hidden-text, oder id?
        Hiermit meine ich ein weiteres Feld in deinem Formular, das definiert, welcher Bereich zu löschen ist. Nachdem du deinen Text in verschiedene Array-Offsets zerlegst, ist der Offset quasi die ID des Textes, der gelöscht werden soll.

        Kommentar


        • #5
          Aha, aber reicht nicht statt diesem hidden text, das Trennzeichen, dass ich vor jedem Beitrag schreibe. Somit hab ich die beiträge ja durch das Trennzeichen zerteilt. Die Id, hab ich dann ja auch schon durch array, also $eintrag[1]...

          Glaub, der Grundstock müsste schon passen, oder?
          Ich glaube, ich hänge eher an dem Punkt, dass durchs Drücken des Buttons den Teil gelöscht werden soll. Also ich glaube, dass ich hauptsächlich hier hänge:

          PHP-Code:
          for ( $a 1$a $ende$a++ ){  
              echo 
          $eintrag[$a]. '&nbsp<input type="submit" name="del['.$eintrag[$a].']" value="del" />';
              if(isset(
          $_POST["del".$eintrag[$a]])){ //hier nach $_POST und oben bei name, glaub ich dass das Problem liegt
              
          unset($eintrag[$a]);
              }

          Kommentar


          • #6
            Das macht man so nicht. Ist nicht nur unpraktisch sondern auch fehleranfällig...

            Kommentar


            • #7
              und wie könnte man es dann sonst machen?

              Kommentar


              • #8
                Hiermit meine ich ein weiteres Feld in deinem Formular, das definiert, welcher Bereich zu löschen ist.

                Kommentar


                • #9
                  ähm, und wie sollte das dann funktionieren, dass ich den Bereich lösche.

                  Erklärung muss jetzt nicht unbedingt in Form eines Skripts sein , aber wie sollte das Prinzip ausschaun. Programieren, versuch ich dann schon selbst...

                  Kommentar


                  • #10
                    Naja, ist jetzt auch schon egal. Habs jetzt anders schon zusammengebracht. Hab aber noch ein Problem. Dass der Browser einen Schritt hinter dem Löschbefehl ist. Das heißt, wenn ich auf den Button drücke, wird der Teil in der Datei gelöscht, aber im Browser noch nicht angezeigt, weil ja PHP von oben nach unten ausgeführt wird...

                    Wie kann ich es jetzt aber erreichen, dass der Browser nach Betätigung des Buttons sofort den neuen Inhalt anzeigt und nicht mehr den alten. Mit java die Seite zu aktualisieren geht nicht, da dann ja der gleiche Befehl noch mal abgesendet wird

                    der Code lautet jetzt so:

                    PHP-Code:
                    </head>
                    <body>
                    <form name="form1" method="post" action="">

                    <?php
                    $bol
                    =file_exists("start.php");
                          if (
                    $bol) {
                               
                    $datei fopen("start.php","r");
                            if (
                    $datei) {
                                  
                    $dateigroesse=filesize("start.php");
                                  
                    $inhalt fread($datei$dateigroesse);
                                  
                    fclose($datei);
                             }
                        }
                        
                    $eintrag explode("<!-- -->",$inhalt);
                    $ende=count($eintrag);
                    $ende--;
                    for ( 
                    $a 1$a $ende$a++ ){  
                        echo 
                    "<table width='500' border='0' bgcolor='#D7F7D7'><tr><td>".$eintrag[$a]."&nbsp<input type='submit' name='del[".$a."]' value='Beitrag löschen' /></td></tr></table/><br /><br />";
                        if (isset(
                    $_POST['del'][$a])){
                            foreach(
                    $_POST as $key=>$wert) {
                                
                    $wert="";
                                
                    $eintrag[$a]=$wert;
                            }
                        }


                    $inhalt_neuimplode("<!-- -->",$eintrag);
                    $inhalt_richtig=str_replace("<!-- --><!-- -->""<!-- -->"$inhalt_neu);
                    $bol=file_exists("start.php");
                          if (
                    $bol) {
                            
                    $dateifopen("start.php","w");
                            if (
                    $datei) {
                                  
                    $output fwrite($datei,$inhalt_richtig);
                                  
                    fclose($datei);
                             }
                          }

                    ?>
                    </form>
                    </body>

                    Kommentar

                    Lädt...
                    X