Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Lista wyboru
Forum PHP.pl > Forum > Przedszkole
yolo


Chcę stworzyć listę wyboru. Znam regułę:

  1. <select name="gender">
  2. <option value="men">men</option>
  3. <option value="woman">woman</option>


Jednak moja jest trochę bardziej skomplikowana. Otóż zapisuję pliki o generowanych nazwach, zgodnie z regułą:

  1. $nazwa= $nrsesji."_".$dzień."_".$miesiąc."_".$rok.".acr";
  2.  
  3. $file=fopen($nazwa, "w");
  4. fwrite($file,$tekst);
  5. fclose($file);


Celem jest zrobienie listy z użyciem nazw zapisanych plików. Probowałem to robić używając hidden type ale poległem. Możew ktoś ma jakiś pomysł i podrzuciłby chociaż wskazówkę jak się zabrać za takie coś?
Kshyhoo
I w czym problem. Pobierasz plik w pętli, linia po linii i wrzucasz w OPTION.
Gość
Dokładnie dzięki:) zrobiłem jak mi mówiłeś i jest piękna lista. robiłem trochę naokoło i nie przynosiło to rezultatów.
Mam jeszcze pytanie też o wskazówkę nakierowującą.
Jak zrobić żeby po wyborze pliku wczytywał sie on na tej samej stronie. Samo odczytywanie danych nie sprawia mi problemu robię to dla przykładowego pliku, jednak nie mogę połączyć tego z wyborem odpowiedniego żeby był otwierany na tej samej podstronie.
pozdrawiam
Kshyhoo
Formularz musi przekierowywać na siebie, czyli action="skrypt.php".
yolo
Dokładnie tak robię ale wyrzuca mi błąd.

Oto kod odpowiedzialny za tworzenie listy. W zmiennej $pliki[] przechowywane są ich nazwy.
  1. echo '<form action="wyniki.php" method="post">';
  2.  
  3. echo '<br>';
  4. echo 'Pliki: ';
  5. echo '</br>';
  6.  
  7. echo '<select name="pliki_wybor">';
  8. for($zm=0;$zm<count($pliki);$zm++){
  9. echo '<option value="'.$pliki[$zm];
  10. echo '">'.$pliki[$zm];
  11. echo '</option>';
  12. echo '</br>';
  13. }
  14. echo '</select>';
  15. echo 'Twórz tabele: <input type="submit" name="Wyślij">';
  16. echo '</form>';


Sprawdzam czy 'pliki_wybor' zostały wybrane w liście, w tym celu porównuję z pustym stringiem $porownanie. Jeśli został to przypisuję wybraną nazwę do zmiennej $pliki_wybor, jeśli nie to będzie ona pusta.

  1. $porownanie='';
  2. if($_POST['pliki_wybor']>$porownanie){
  3. $pliki_wybor = $_POST['pliki_wybor'];
  4. }
  5. else{
  6. $pliki_wybor = '';
  7. }


I na koniec odczytuję z pliku i wyświetlam jeśli w zmiennej $pliki_wybor jest jakaś nazwa.
  1. if(strcmp($pliki_wybor,$porownanie)>0){
  2. $print='';
  3. $file1=fopen($pliki_wybor, "r");
  4. while(!feof($file1))
  5. {
  6. $linia=fgets($file1);
  7. $print .=$linia.'</br>';
  8. }
  9. echo $print;
  10. fclose($file1);
  11. }


Jeśli wczytam coś takiego to pojawia mi się lista wyboru, ale poza tym błąd:

Notice: Undefined index: pliki_wybor in C:\Program Files (x86)\EasyPHP-DevServer-13.1VC9\data\localweb\projects\wyniki.php on line 229

gdzie linia 229 odpowiada

  1. if($_POST['pliki_wybor']>$porownanie){


Czyli z tego co rozumiem do momentu gdy użytkownik nie zaznaczy w liście swojego wyboru, do tego momentu index: pliki_wybor nie będzie zdefiniowany.
Jak zrobić to poprawnie, żeby nie było błędu?
P.S.
Wiem, że mam trochę zagmatwany kod ale takie coś wymyśliłem, jak jest jakiś prostszy sposób to chętnie go zaimplementuje:)
Turson
Zrób według takiej struktury
  1. if(!isset($_POST['pliki_wybor'])){
  2. //pokaż formularz
  3. }
  4. else{
  5. //odbierasz formularz
  6. }
Xart
Nie baw się w plikach tekstowych tylko użyj bazy danych ...
yolo
Dzięki za funkcję isset okazała się nadwyraz pomocna:)
Muszę robić na plikach bo takie jest wymaganie prowadzącego:), a poza tym baz musiałbym się uczyć dodatkowo, a nie chce mi się już za bardzo:)
W każdym razie dziękuję
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.