Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [HTML][php] Usuwanie wybranych linii z pliku txt
kamild
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 16.02.2011

Ostrzeżenie: (0%)
-----


Witam szanownych forumowiczów.
Nie wiem gdzie popełniłem błąd, a mianowicie chcę uzyskać możliwość usuwania poszczególnej linii pliku txt. Stworzyłem tabelę w której w jednej kolumnie znajduje się podgląd zawartości pliku (podzielony na linie) a w drugiej kolumnie przycisk usuń. Niestety funkcja ta nie działa. Czy ktoś może mi pomóc? Z góry dziękuje. Pozdrawiam

  1. <?php
  2. $plik = "plik.txt";
  3.  
  4. if ((isset($_POST['usun'])) AND (is_numeric($_POST['usun']))) {
  5.  
  6.  
  7. $dane = file($plik); /* pobieram dane z pliku */
  8. unset($dane[$_POST['usun']]);
  9.  
  10. $f = fopen($plik, "w");
  11. foreach($dane as $linia){
  12. fputs($f, $linia);
  13. }
  14. fclose($f);
  15.  
  16. }
  17.  
  18. ?>
  19. <form action="usun2.php" method="post">
  20.  
  21. <?php
  22. $dane = file($plik);
  23.  
  24. for($i=0;$i<count($dane);$i++) {
  25. list($imie[$i], $nazwisko[$i], $miejscowosc[$i]) = explode(" || ", $dane[$i]);
  26. }
  27. echo '<table border="1" width="500" align="center"><tr><td height="10" align="center">"Imię nazwisko, numer" </td><td></td>"Dostępne operacje"</tr></table>';
  28. for($i=0;$i<count($imie);$i++)
  29. echo '<table border="1" width="500" align="center"><tr><td height="10" align="center"><tr><td height="10" align="center">'.$imie[$i]." ".$nazwisko[$i].", ".$miejscowosc[$i].'</td><td>
  30. <input type="hidden" name="execute" value="true"><input type="submit" value="Usuń"><input type="hidden" name="execute" value="true"><input type="submit" value="Drukuj"></td></tr></table>';
  31. ?>
  32. </form>

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
TwojPan
post
Post #2





Grupa: Zarejestrowani
Postów: 56
Pomógł: 0
Dołączył: 13.08.2013

Ostrzeżenie: (0%)
-----


Cytat(_Borys_ @ 17.02.2011, 01:12:17 ) *
wartość submit nie jest przesyłana do $_POST
Jeśli chciałbyś tym sposobem co myślisz to musiałbyś każdy hidden i każdy submit umieścić w osobnym formularzu, każdy hidden o innej wartości i każdy formularz o innej nazwie.

Inny sposób to zastosowanie:
checkbox-y w których nazwy byłyby tablicami
  1. <input type="checkbox" name="tab[]" value="xxx"/>
  2. <input type="checkbox" name="tab[]" value="yyy"/>

tablice nie muszą być numerowane.

lub przy pomocy select:
  1. <select name="sel">
  2. <option value="xxx">xxx</option>
  3. <option value="yyy">xyz</option>

na początku swojego skryptu wpisz var_dump ($_POST) i zobaczysz co jest przesyłane do $_POST.

Hej,
Powiedzmy ze mam plik i dane linia po linii. Wiem jak usunac wybrana linie z pola radio ale jesli mam usunac kilka na raz przy polach checkbox ? Jak to powinno wygladac ?
Mam teraz taki przyklad:
  1. <?
  2. function f($c,$k)
  3. {
  4.  
  5. $c = "<form ACTION=".$_SERVER['PHP_SELF']." METHOD='POST'>";
  6. $c .= "<input TYPE='hidden' name='x' value='1'>";
  7. $c .= "<select name='in'>";
  8. $foo = file($k);
  9. $t = 0;
  10. foreach($foo as $v){
  11. $c .= '<option VALUE=\''.$t.'\'>'.$v.'</OPTION>';
  12. $t++;
  13. }
  14. $c .= "</select><input TYPE='submit' value='del'></form>";
  15. return $c;
  16. };
  17. function delline($u,$f){
  18. $foo = file($f);
  19. unset($foo[$u]);
  20. $f = fopen($f,'w');
  21. flock($f, LOCK_EX);
  22. fwrite($f,str_replace('\r','',join('',$foo)));
  23. flock($f ,LOCK_UN);
  24. fclose($f);
  25. print 'usunolem linie';
  26. exit();
  27. };
  28. @($_POST['x'])?delline($_POST['in'],'data.txt'):print @f($c,'data.txt');
  29.  
  30. ?>

Dziekuje za odpowiedz.

Ten post edytował TwojPan 14.08.2013, 08:06:09
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 12.10.2025 - 03:17