*GGGGG* fand ich passend und das Metall-Theme für die Männer
Einkaufsliste sharen
-
-
Hab mich jetzt (nach Jahren *g*) hingesetzt um endlich eine variable Anzahl Zeilen bei meiner Einkaufsliste zu verwirklichen. Leider steh ich grad wieder an
Aber Irgendjemand (Cyber? :-D) kann mir hier sicher weiterhelfen!
HTML Form sieht so aus:
PHPecho 'Name: <input class="listenname" type="text" name="listenname" value="'.$array[1].'" autocomplete="off"><br>'; for ($l = 1; $l <= $counter; $l = $l+1) { echo '<input class="check" type="checkbox" name="del[]"><input class="zeile" name="name[]" tabindex="'.$l.'" type="text" value="'.$array[$l+1].'" autocomplete="off"><br>'; } echo '<input class="check" type="hidden" name="liste" value="'.$_GET["liste"].'">'; echo '<input class="knopf" type="submit" name="submit" value="Speichern">';
Nach dem Submit mach ich folgendes:PHP
Alles anzeigenif ($_POST["submit"] == "Speichern") { $delete = $_POST["del"]; $lines = $_POST["name"]; $counter = count($lines); for ($i = 1; $i <= $counter; $i = $i+1) { if (isset($delete["'.$i.'"])) { unset($lines["'.$i.'"]); } } if ($_POST["listenconfig"] == '<%= _color %>') { $_POST["listenconfig"] = $_POST["listenconfig_old"]; } elseif ($_POST["listenconfig"] != '<%= _color %>') { $_POST["listenconfig"] = $_POST["listenconfig"]."\n"; } $listenHandle = fopen('./listen/'.$_GET["liste"], 'w') or die("Liste kann nicht gespeichert werden!"); $listenInhalt = $_POST["listenconfig"].$_POST["listenname"]."\n".implode("\n",array_filter($lines)); $listenInhalt = trim($listenInhalt, " "); fwrite ($listenHandle, $listenInhalt); fclose($listenHandle); echo '<div class="global yel">gespeichert!</div>'; echo '<meta http-equiv="refresh" content="1; URL=./index.php?liste='.$_POST["liste"].'">';
Zeilen hinzufügen geht problemlos. Unten sind immer 2 leere Zeilen frei, wenn man was reinschreibt und abspeichert, kommt der Punkt dazu, und drunter werden wieder leere Zeilen eingefügt.Mein Problem bezieht sich aber aufs löschen von Zeilen! Das array $delete (wo die checkboxen drin stehen sollen) is immer leer Irgendwo hab ich da nen Denkfehler.
hmmm .. das $delete Array is doch nicht leer. Es wird nur nix aus der unset-Zeile übernommen. Muss ich das vielleicht alles neu in ein Array schreiben? Wahrscheinlich .. wahrscheinlich kann man ein Array nicht ändern, indem man nur einzelne Werte daraus ändert/entfernt. Ich werd das mal probieren!I'ma gonna win!
Ganz klar Blödsinn von mir Nachdem ich if (isset($delete["'.$i.'"])) { unset($lines["'.$i.'"]); } in (isset($delete[$i])) { unset($lines[$i]); } geändert hatte, gings plötzlich -
Gerne geholfen.