Cytat(sauber94 @ 19.07.2019, 11:44:42 )

Select już dawno zrobiony

W pliku tekstowym na tą chwilę widnieją imiona i nazwiska, każda osoba jedna pod drugą w tym stylu:
Jan Kowalski
Janina Kowalska
Zawartośc pliku .txt
jan Kowalski
Janina Kowalska
Stanisław Anioł
Marek Ciechanowski
Justyna Maj
Jeśli jest to linia po linii to kazda z nich jest indeksem tablicy - jeśli oczywiście robi się z pliku tablice.
Więc dodajac plik do tablicy poprzez file():
Każdą linie odczytasz wstawiajac konkretny indeks tejze tablicy:
$id = 3;
id to indeks. Musisz pamiętac ze indeksy w plikach zaczynają się od zera ( 0 ) nie od 1.
Więc linia 1 w pliku ma indeks 0.
Linia 2 ma indeks 1
Lina 3 ma indeks 2
itd...
To jesli chodzi o odczyt z pliku poprzez tablice. Oczywiscie trzeba gdzies miec te indeksy.
Nalezy zrobic jakas petle. Albo while albo for i iterowac podstawiajac pod nazwe pola <option>
Ładujac plik do tablicy nalezy pamiętać o tym że duze pliki zapchają pamięć wiec nie jest to dobre rozwiązanie jesli ładuje się przykładowo poł mega lub więcej do pamięci. W takich przypadkach najlepiej jest otworzyć plik poprzez f. fopen()
$uchwyt = fopen('baza.txt', 'r'); // r to flaga oznaczajaca ze plik jest TYLKO do odczytu.
Więc tak. Otworzymy plik poprzez fopen(), zczytamy linie po linii poprzez f. fread() pobierajac 1024 znaki i iterujac $no podstawimy pod value pola <option>
Na końcu sprawdzimy czy dane są przesłane i mają wartoość liczbową (integer) i wyświetlimy konkretną linie z pliku poprzez podstawienia przeslanego indeksu (z pola option) do tablicy. Oczywiscie tutaj tez mozna zrobic to inaczej nie stosujac tablic ale tak na szybkiego.
<?php
$base = 'baza.txt';
$path = './';
function ShowContent($FileName, $PathName)
{
$content = fopen($PathName . $FileName, 'r'); flock($content, LOCK_SH
);
echo "<form method=post action=" . $_SERVER['SCRIPT_NAME'] . ">"; echo "<select name=ShowID>";
$no = 0;
{
$GetLine = fgets($content, 1024
); echo "<option value=\"" . $no . "\">" . $GetLine . "</option>"; $no++;
}
flock($content, LOCK_UN
);
echo "<select><input type=\"submit\" value=\"Pokaz\" name=\"submit\"></form>";
}
echo ShowContent
($base, $path);
$id = (int)$_POST['ShowID'];
{
}
?>
Nie ładuj w selecta wartosci z pliku jako value.