Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Lista wyboru
-yolo-
post 25.01.2014, 22:26:08
Post #1





Goście









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ś?
Go to the top of the page
+Quote Post
Kshyhoo
post 25.01.2014, 22:59:50
Post #2





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




I w czym problem. Pobierasz plik w pętli, linia po linii i wrzucasz w OPTION.


--------------------
Go to the top of the page
+Quote Post
-Gość-
post 26.01.2014, 10:55:18
Post #3





Goście







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
Go to the top of the page
+Quote Post
Kshyhoo
post 26.01.2014, 11:10:50
Post #4





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Formularz musi przekierowywać na siebie, czyli action="skrypt.php".


--------------------
Go to the top of the page
+Quote Post
-yolo-
post 26.01.2014, 12:02:16
Post #5





Goście







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:)
Go to the top of the page
+Quote Post
Turson
post 26.01.2014, 12:10:04
Post #6





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Zrób według takiej struktury
  1. if(!isset($_POST['pliki_wybor'])){
  2. //pokaż formularz
  3. }
  4. else{
  5. //odbierasz formularz
  6. }
Go to the top of the page
+Quote Post
Xart
post 26.01.2014, 12:24:21
Post #7





Grupa: Zarejestrowani
Postów: 267
Pomógł: 6
Dołączył: 8.04.2013

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


Nie baw się w plikach tekstowych tylko użyj bazy danych ...
Go to the top of the page
+Quote Post
-yolo-
post 26.01.2014, 14:00:00
Post #8





Goście







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ę
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 12:50