Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]formularz php
Forum PHP.pl > Forum > Przedszkole
fitdancer
Mam mały klopot w stworzeniu skrypty który działa następująco...

mam formularz w htmlu z lista rozwijalną z opcjami waluty jaka mnie interesuje...
teraz jak wcisne przycisk tam np o nazwie wynik, to skrypt php ma mi zapisać wynik aktualnej wartości wybranej waluty w pliku tekstowym...

formularz tak zrobiłem, razem z częscia php która zapisywac powinna do pliku cokolwiek:
  1. <html>
  2. <head>
  3. <title>Waluty</title>
  4. </head>
  5. <body>
  6. <form action="index.php3" method=post>
  7.  <h1>Która waluta Cie interesuje?</h1>
  8. <select name="waluta">
  9. <option name="euro">EUR - euro</option>
  10. <option name="dolar">USD - dolar amerykański</option>
  11. <option name="frank">CHF - frank szwajcarski</option>
  12. <option name="rubel">RUB - rubel rosyjski</option>
  13. </select>
  14. <input type="submit" value="wynik" />
  15.  
  16. </form>
  17.  
  18. <?
  19.  $f=fopen("wynik.txt", "a");
  20. if ($f) {
  21. fputs($f,"$_POST[euro],$_POST[dolar],$_POST[frank],$_POST[rubel]\n");
  22. fclose($f);
  23. echo "Dane zostały zapisane :)";
  24. } 
  25.  
  26. ?>
  27. </body>
  28. </html>


co dopisać zeby działało??
Grzyw
Sprawa jest prosta - w tym skrypcie wartość opcji z formularza przechowywana jest w zmiennej $_POST['waluta'] . I w zależności od wyboru, może zawierać w sobie wartość 'euro', 'frank' itd.
fitdancer
<?
$f=fopen("wynik.txt", "a");
if ($f) {
fputs($f,"$_POST['waluta']\n");
fclose($f);
echo "Dane zostały zapisane ";
}


o to Ci chodzi?questionmark.gif
Grzyw
Tak, to powinno Ci zadziałać.

Możesz wyciąć tymczasowo (choćby poprzez komentarz) część odpowiadającą za zapis do pliku i wywalić na ekran:
  1. <?php
  2. echo $_POST['waluta'];
  3. ?>


To pozwoli Ci "zdebugować", czy błąd leży w zapisie pliku.
fitdancer
tylko, że mi nie działa... a wynik mam taki

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in index.php3 on line 19
Grzyw
A zmień:
  1. <?php
  2. fputs($f,"$_POST['waluta']\n");
  3. ?>

na:
  1. <?php
  2. fputs($f,$_POST['waluta']."\n");
  3. ?>
fitdancer
Wszystko mi sie juz miesza, mógł bys mi mniejwiecej rozpisac jak powinien wygalac działajacy kod ze wszystkim co jest w poleceniue??

czyli formularz z opcjalmi waluty i zapisem aktualnego kursu do pliku tekstowego...
Grzyw
Jasne.

Plik HTML:
  1. <title>Waluty</title>
  2. </head>
  3. <form action="index.php" method=post>
  4. <h1>Która waluta Cie interesuje?</h1>
  5. <select name="waluta">
  6. <option name="euro">EUR - euro</option>
  7. <option name="dolar">USD - dolar amerykański</option>
  8. <option name="frank">CHF - frank szwajcarski</option>
  9. <option name="rubel">RUB - rubel rosyjski</option>
  10. <input type="submit" value="wynik" />
  11.  
  12. </form>
  13. </body>
  14. </html>


Plik index.php:
  1. <?
  2. echo $_POST['waluta'];
  3. $f=fopen("wynik.txt", "a");
  4. if ($f) {
  5. fputs($f,$_POST['waluta']."\n");
  6. fclose($f);
  7. echo "Dane zostały zapisane ";
  8. }
  9. ?>


Taki skrypt powinien wywalić Ci na ekran wartość wybraną i zapisać ją do pliku. Daj znać, czy wywaliło na ekran wartość i czy zapisało do pliku.
fitdancer
wynik pokazuje sie na ekranie i zapisuje do pliku.. tylko teraz jescze jak wyciagnac ze stornki jakiejs kakrente info dotyczące tej waluty??

<?
$plik=fopen("http://kursy-walut.mybank.pl/","r");

... ?>
Grzyw
Po pierwsze - wyciągnij dane używając funkcji file_get_contents()
Później wyciągnij dane za pomocą wyrażeń regularnych.
Cysiaczek
Przenoszę na Przedszkole, a autora proszę, na przyszość o używanie bbcode.

Pozdrawiam.
fitdancer
aż tak jescze nie jestem zaprzyjaxniony z php, żeby moć regularne stosować...
także ogromna prośba , jeżlei mogł bys mi to dopisać i potem powiedziec w gdzie to wstawic smile.gif

pomożta ludziska prosze!!! smile.gif
Grzyw
Oj, Fitdancer, wybacz, ale odwalenie całej roboty mijałoby się z celem - musisz się tego nauczyć!:)
Mogę Ci podpowiadać w międzyczasie. Zapisz sobie tę funkcją file_get_contents() zawartość strony internetowej do jakiejś zmiennej.
W tej zmiennej będziesz miał treść czystego HTML'a. Poczytaj o wyrażeniach regularnych, to bardzo przydatne narzędzie, generalnie uniwersalne we wszystkich językach programowania. Wykorzystać je będziesz mógł też w JS.
Poczytaj:
http://www.programuj.com/artykuly/www/regularne.php
http://maciek.lasyk.info/regexp_checker.html
http://sokrates.mimuw.edu.pl/~sebek/regexp.html

Po stronie PHP funkcje do obsługi wyrażeń regularnych: preg_match() i ereg(). Z tej pierwszej skorzystasz w tym przypadku.

Powodzenia, jak coś, to pytaj.
fitdancer
narazie zdołałem wrzucic cała zawartośc strony..

Kod
<?
$f = file_get_contents('http://www.money.pl/pieniadze/nbp/srednie/');
preg_match("([A-Z])", $f, $matches);
echo($f);    

?>
Grzyw
OK, teraz $f zawiera cały HTML. Teraz poczytaj o regularnych, o wzorcach, jak to wyciągnąć.
Przeglądnij wątek, w której otrzymałem kiedyś pomoc:
http://forum.php.pl/index.php?showtopic=78...mp;#entry400869
fitdancer
nie kminie tych regularnych ;/ nie wiem jak to dalej zrobić, a potem wszystko złączyć do kupy trzeba sad.gif
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.