Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]przesyłanie danych z select
bluebird
post 9.09.2009, 13:14:34
Post #1





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 9.09.2009

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


witam stworzyłem rozwijaną listę która pobiera nazwę plików i nadane tytuły z bazy danych - po kliknięciu pobierz ma pobierać plik z katalogu abc na dysk używając gotowego skryptu force-download.php - niestety zmienna $_POST['dok'] jest pusta, jaki popełniłem błąd w kodzie?

CODE
<form action="force-download.php?file=dokumenty/abc/".$_POST['dok']."" method="post" class="">
<select style="width:105px;" name="dok">
<option value="">Dokumenty</option>
<?php include("polaczenie.php");
$query = "SELECT tytul,nazwa FROM dokumenty WHERE miasto='abc'";
$result = mysql_query ($query);
if ($result!=''){while ($row = mysql_fetch_array($result)) {
echo ("<option value=\"".$row[1]."\">".$row[0]."</option>");}}
include("rozlaczenie.php");?>
</select>
<input type="submit" value="Pobierz"/></form>


z góry dzieki za pomoc
Go to the top of the page
+Quote Post
thek
post 9.09.2009, 13:32:25
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Apostrofy przy POST to już widzę pierwszy błąd. Nie można wrzucać "na chama" zmiennej post tak:
  1. <form action="force-download.php?file=dokumenty/abc/".$_POST['dok']."" method="post" class="">

tylko jak już co:
  1. <form action="force-download.php?file=dokumenty/abc/<?php echo $_POST['dok'] ?>" method="post" class="">

Poza tym jak masz mieć ją pełną, skoro ona dopiero PO naciśnięciu submit się uzupełnia. A Twoim zdarzeniem po naciśnięciu submit jest wywołanie innego pliku. To w nim masz przechwycić jaki plik wywołano i robisz to odczytując dane z select wewnątrz pliku force-download. To w nim się do tej zmiennej dobierasz.

Ten post edytował thek 9.09.2009, 13:34:16


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
bluebird
post 9.09.2009, 14:03:45
Post #3





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 9.09.2009

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


czyli jak ostatecznie powinien wyglądać kod żeby działał?
Go to the top of the page
+Quote Post
thek
post 9.09.2009, 14:18:34
Post #4





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Na pewno nie tak jak napisałeś smile.gif Powinien w pliku force_download.php pobierać zmienną $_POST['doc'] i w zalezności od niej wysyłać do przegladarki własciwy plik. Nie podam gotowca bo nie na tym to polega. Poza tym mogę się tylko domyślać ścieżek na Twoim serwerze na podstawie tego co wrzuciłeś do action, ale też nie mogę mieć pewności.


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
bluebird
post 16.09.2009, 15:14:01
Post #5





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 9.09.2009

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


plik force-download.php jest gotową funkcją w phpie który zmusza do ściągnięcia pliku na dysk i wywołuje sie to właśnie za pomocą "force-download.php?file=ściezka_do_pliku" czy rozwiązaniem bedzie dodanie do form
CODE
onchange="this.value=<?php echo $_POST['dok']; ?>"
questionmark.gif

proszę o gotowca bo tylko wtedy sie nauczę...

pomóżcie prosze... :|

Ten post edytował bluebird 16.09.2009, 15:14:23
Go to the top of the page
+Quote Post
Rookie
post 16.09.2009, 15:28:59
Post #6





Grupa: Zarejestrowani
Postów: 130
Pomógł: 1
Dołączył: 1.03.2008
Skąd: Olsztyn

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


Gotowce to nie w tym dziale, nauczysz się najlepiej na własnych próbach i błędach, a nie oczekując na rozwiązanie na tacy...
Go to the top of the page
+Quote Post
Largo
post 16.09.2009, 15:36:23
Post #7





Grupa: Zarejestrowani
Postów: 203
Pomógł: 6
Dołączył: 11.09.2005

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


Cytat(bluebird @ 16.09.2009, 14:14:01 ) *
plik force-download.php jest gotową funkcją w phpie który zmusza do ściągnięcia pliku na dysk i wywołuje sie to właśnie za pomocą "force-download.php?file=ściezka_do_pliku" czy rozwiązaniem bedzie dodanie do form
CODE
onchange="this.value=<?php echo $_POST['dok']; ?>"
questionmark.gif

proszę o gotowca bo tylko wtedy sie nauczę...

pomóżcie prosze... :|


Witaj,

Ten tekst mnie powalił... Jakby za Ciebie ktoś odwalał pracę to też by powiedział, że jak on pracuje to Ty się męczysz? ^^ Ciekawa teoria, muszę ją chyba zapisać do humoru miesiąca :-)

A rozwiązanie w sumie jest proste. Musisz w pliku force-download.php pobrać zmienną, wiesz chyba jak? I następnie wybrać plik z folderu i użyć funkcji readfile(). Z tym chyba sobie poradzisz? Mniej więcej przykład działania.

  1. <?php
  2.  
  3. $file = $_POST['doc'];
  4.  
  5. if ( file_exists( $file ) )
  6. {
  7. readfile( $file );
  8. }
  9.  
  10. ?>


Oczywiście weż pod uwagę ścieżkę.

Pozdrawiam,
Largo

Ten post edytował Largo 16.09.2009, 15:39:56
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: 12.07.2025 - 12:41