Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php/html]wywołanie funkcji poprzez naciśnięcie klawisza
Forum PHP.pl > Forum > Przedszkole
kitachi
Witam
tworzę swój pierwszy nieco bardziej złożony skrypt, założenie jest takie :
1. w pierwszym pliku jest formularz po wypełnieniu którego wysyłane są dane do pliku nr 2
2. w 2 następuje obróbka i sprawdzenie danych, po obróbce i uzupełnieniu o dodatkowe dane miały być dane wysyłane formularzem polami hidden do pliku nr 3. Po akceptacji przez wypełniającego.
3. w trójce miało to być wysyłane mailem gdzie trzeba.

okazało się że pola hidden w 2 obcinają stringi do pierwszej spotkanej spacji i przy polach zawierających np. Imię i Nazwisko dochodziło tylko to co było pierwsze. Mogę podmienić spacje poprzez str_replace ale nie o to chodzi. Postanowiłem umieścić plik nr 3 w postaci funkcji w pliku nr 2. Mam kłopot z wywołaniem tej funkcji przy pomocy button, zamykam to okno tak :
  1. <input type=button class=button value="wróć" onClick="java script:window.close()">

chciałem wywołać tę funkcję analogicznie, ale nie działa.
  1. <input type=button class=button value="wyślij" onClick="wyslij()">

W funkcji zadeklarowałem wszystkie dane jakie mają być w niej używane jako global bo to zmienne formularza czyli obecne w całym pliku nr 2 i ich potrzebuję do wysłania.
Proszę o proste objaśnienia, to moje początki z PHP.
Serdecznie dziękuję i pozdrawiam wszystkich czytających.
Cienki1980
Otwieram.

Z tego co napisałeś, nie wiem czy interesuje Cię wywołanie funkcji JS czy też jakiejś z funkcji PHP.

Co do obcinania danych w hiddenach, możesz to zastąpić albo sesjami albo zapisem tymczasowym do bazy danych ( albo nawet w plikach , jeżeli nie masz bazy danych )

Daj więcej danych i może trochę więcej kodu.
nospor
Cytat
okazało się że pola hidden w 2 obcinają stringi do pierwszej spotkanej spacji i przy polach zawierających np. Imię i Nazwisko dochodziło tylko to co było pierwsze.

Bo value nalezy pisac tak: value="imie i nazwisko" a nie tak: value=imie i nazwisko
pozatym wszystko nalezy brac w "" smile.gif
kitachi
witam
  1. <HEAD> <TITLE>TEKNOHEAT</TITLE>
  2. <meta http-equiv="Content-Type" content="text/html; lang="pl" charset="iso-8859-2">
  3. <script LANGUAGE="JavaScript">
  4. <!--
  5. function cl()
  6. {
  7. window.close();
  8. }
  9. //-->
  10. <font face="Arial">
  11. <?
  12. print('<form name="teknoheat" action="../moje/podlicz_tekh.php" method="POST">');
  13. print ('<br><br><BR><b><center>');
  14. print ("ZAMAWIASZ TEKNOHEAT");print ('<br>');
  15. print ("Zamówiłe&para; towary :");print ('<br>');
  16. print ('Teknoheat 200 ml. szt : ' . "$t200");print ('<br>');
  17. print ('Teknoheat 500 ml. szt : ' . "$t500");print ('<br>');
  18. print ('Teknoheat 1 l. szt : ' . "$t1");print ('<br>');
  19.  
  20. print ('Teknoheat biały 200 ml. szt : ' . "$tb200");print ('<br>');
  21. print ('Teknoheat biały 500 ml. szt : ' . "$tb500");print ('<br>');
  22. print ('Teknoheat biały 1 l. szt : ' . "$tb1");print ('<br>');
  23.  
  24. print ('Teknoheat złoty 300 ml. szt : ' . "$tz300");print ('<br>');
  25. print ('Teknoheat złoty 750 ml. szt : ' . "$tz750");print ('<br>');
  26. print ('Teknoheat złoty 1,5 l. szt : ' . "$tz15");print ('<br>');
  27.  
  28. print ('Teknoheat miedziany 300 ml. szt : ' . "$tm300");print ('<br>');
  29. print ('Teknoheat miedziany 750 ml. szt : ' . "$tm750");print ('<br>');
  30. print ('Teknoheat miedziany 1,5 l. szt : ' . "$tm15");print ('<br>');
  31.  
  32. print ('Rozpuszczalnik do Teknoheat 0,5 l. szt : ' . "$tr500");print ('<br>');
  33. print ('');
  34.  
  35. $kwota = ($t200 *13.3)+($t500*29)+($t1*56)+($tb200*24)+($tb500*52.2)+($tb1*100.8)+(($tz300+tm300)*24)+(($tz750+$tm750)*52.2)+(($tz15+$tm15)*100.8)+($tr500*8.2);
  36. print ('Na ł&plusmn;czn&plusmn; kwotę : ' . "$kwota" . ' złotych');print ('<br>');
  37.  
  38. print ('<br><br><BR><div align="center">
  39. <input type="hidden" name="kwota" value='.$kwota.'>
  40. <input type="hidden" name="t200" value='.$t200.'>
  41. <input type="hidden" name="t500" value='.$t500.'>
  42. <input type="hidden" name="t1" value='.$t1.'>
  43.  
  44. <input type="hidden" name="tb200" value='.$tb200.'>
  45. <input type="hidden" name="tb500" value='.$tb500.'>
  46. <input type="hidden" name="tb1" value='.$tb1.'>
  47.  
  48. <input type="hidden" name="tz300" value='.$tz300.'>
  49. <input type="hidden" name="tz750" value='.$tz750.'>
  50. <input type="hidden" name="tz15" value='.$tz15.'>
  51.  
  52. <input type="hidden" name="tm300" value='.$tm300.'>
  53. <input type="hidden" name="tm750" value='.$tm750.'>
  54. <input type="hidden" name="tm15" value='.$tm15.'>
  55. <input type="hidden" name="tr500" value='.$tr500.'>
  56.  
  57. <input type="hidden" name="e_mail" value='.$e_mail.'>
  58. <input type="hidden" name="nazwa_fir" value='.$nazwa_fir.'>
  59. <input type="hidden" name="nip" value='.$nip.'>
  60. <input type="hidden" name="imie_i_nazw" value='.$imie_i_nazw.'>
  61. <input type="hidden" name="ulica" value='.$ulica.'>
  62. <input type="hidden" name="kodp" value='.$kodp.'>
  63. <input type="hidden" name="miasto" value='.$miasto.'>
  64. <input type="hidden" name="telefon" value='.$telefon.'>
  65. <input type=button class=button value="wróć do zamówienia" onClick="java script:window.close()">
  66. <input type="submit" value="Wy&para;lij zamówienie" name="submit">
  67. </form>
  68. </div>');
  69. //}
  70. ?>
  71. </font>
  72. </body></HTML>

to kod pliku nr 2 po przesłaniu danych z formularza od pliku nr 1
  1. <META http-equiv="content-type" content="text/html; lang="pl" charset="iso-8859-2">
  2. <script LANGUAGE="JavaScript">
  3. <!--
  4. function cl()
  5. {
  6. window.close();
  7. }
  8. //-->
  9. <font face="Arial">
  10. <?
  11.  
  12. print ("Zamówienie zostało przyjęte !<br>");
  13. print("Dziękujemy !");
  14. $from = 'e_mail';
  15. $to = '1@eranet.pl';
  16. $szef = '2@eranet.pl';
  17. $subject = 'zamówienie ze strony www';
  18. $body = ("Zamówienie \n\n
  19. Zamówienie \n ================================================================================
    == \n\n
  20. Firma : $nazwa_fir \n
  21. NIP : $nip \n
  22. Imie i nazwisko : $imie_i_nazw \n
  23. Ulica : $ulica \n
  24. Kod pocztowy : $kodp \n
  25. Miasto : $miasto \n
  26. Telefon : $telefon \n
  27. e-mail : $e_mail \n \n
  28. Zamówienie Teknoheat 200 ml.: $t200 \n
  29. Zamówienie Teknoheat 500 ml.: $t500 \n
  30. Zamówienie Teknoheat 1 l.: $t1 \n
  31. Zamówienie Teknoheat biały 200 ml.: $tb200 \n
  32. Zamówienie Teknoheat biały 500 ml.: $tb500 \n
  33. Zamówienie Teknoheat biały 1 l.: $tb1 \n
  34. Zamówienie Teknoheat złoty 300 ml.: $tz300 \n
  35. Zamówienie Teknoheat złoty 750 ml.: $tz750 \n
  36. Zamówienie Teknoheat złoty 1,5 l.: $tz15 \n
  37. Zamówienie Teknoheat miedziany 300 ml.: $tm300 \n
  38. Zamówienie Teknoheat miedziany 750 ml.: $tm750 \n
  39. Zamówienie Teknoheat miedziany 1,5 l.: $tm15 \n
  40. Zamówienie rozpuszczalnik do Teknoheat 500 ml.: $tr500 \n
  41. warto&para;ć zamówienia : $kwota \n ");
  42. mail ($to,$subject,$body,"From : $from \n ");
  43. mail ($e_mail,$subject,$body,"From : $to \n Return-Path: <1@eranet.pl>");
  44. mail ($szef,$subject,$body,"From : $from \n ");
  45.  
  46. print ('<br><br><BR><div align="center">
  47. <input type=button class=button value="zamknij" onClick="java script:window.close()">
  48. </div>');
  49.  
  50.  
  51. ?>
  52. </font>
  53. </body></HTML>

to kod pliku wysyłającego nr 3 zamieniłem go na funkcję i wstawiłem do pliku nr 2 pod taką postacią
  1. function wyslij ()
  2. {
  3. global $kwota;
  4. global $t200; global $t500; global $t1;
  5. global $tb200; global $tb500; global $tb1;
  6. global $tz300; global $tz750; global $tz15;
  7. global $tm300; global $tm750; global $tm15;
  8. global $tr500;
  9.  
  10. $from = 'e_mail';
  11. $to = '1@eranet.pl';
  12. $szef = '2@eranet.pl';
  13. $subject = 'zamówienie ze strony www';
  14. $body = ("Zamówienie \n\n
  15. Zamówienie \n ================================================================================
    == \n\n
  16. Firma : $nazwa_fir \n
  17. NIP : $nip \n
  18. Imie i nazwisko : $imie_i_nazw \n
  19. Ulica : $ulica \n
  20. Kod pocztowy : $kodp \n
  21. Miasto : $miasto \n
  22. Telefon : $telefon \n
  23. e-mail : $e_mail \n \n
  24. Zamówienie Teknoheat 200 ml.: $t200 \n
  25. Zamówienie Teknoheat 500 ml.: $t500 \n
  26. Zamówienie Teknoheat 1 l.: $t1 \n
  27. Zamówienie Teknoheat biały 200 ml.: $tb200 \n
  28. Zamówienie Teknoheat biały 500 ml.: $tb500 \n
  29. Zamówienie Teknoheat biały 1 l.: $tb1 \n
  30. Zamówienie Teknoheat złoty 300 ml.: $tz300 \n
  31. Zamówienie Teknoheat złoty 750 ml.: $tz750 \n
  32. Zamówienie Teknoheat złoty 1,5 l.: $tz15 \n
  33. Zamówienie Teknoheat miedziany 300 ml.: $tm300 \n
  34. Zamówienie Teknoheat miedziany 750 ml.: $tm750 \n
  35. Zamówienie Teknoheat miedziany 1,5 l.: $tm15 \n
  36. Zamówienie rozpuszczalnik do Teknoheat 500 ml.: $tr500 \n
  37. warto&para;ć zamówienia : $kwota \n ");
  38. mail ($to,$subject,$body,"From : $from \n ");
  39. mail ($e_mail,$subject,$body,"From : $to \n Return-Path: <1@eranet.pl>");
  40. mail ($szef,$subject,$body,"From : $from \n ");
  41.  
  42. print ('<br><br><BR><div align="center">
  43. <input type=button class=button value="zamknij" onClick="java script:window.close()">
  44. </div>');
  45. }

chciałbym wywołać funkcję "wyslij()" w pliku nr 2 po naciśnięciu klawisza
  1. <input type=button class=button value="wyślij" onClick="wyslij()">

tak aby ona zadziałała, może być inny sposów wywołania funkcji po naciśnięciu obrazka i tp. lub jeśli można coś poradzić aby pola hidden nie obcinały stringów.
Przy okazji znalazłem parę braków deklaracji zmiennych global do funkcji.
Pozdrawiam.
nospor
Cytat
ub jeśli można coś poradzić aby pola hidden nie obcinały stringów.
Chlopie, czy ty czytasz co do Ciebie piszą?
Cytat
Bo value nalezy pisac tak: value="imie i nazwisko" a nie tak: value=imie i nazwisko
pozatym wszystko nalezy brac w ""

A ty dalej pokazujesz kod, gdzie u ciebie value w hidden wyglada tak: value=imie i nazwisko

Mamy sie pogniewac? Po 15 razy trzeba pisac to samo?
kitachi
Witam
rozumiem doskonale "". Tyle, że chcę przekazać wartość zmiennej czyli nie " a ' value='.$zmienna.' bo jeśli dam tak jak Pan radzi value="$zmienna" to przekażę do e-mail w polu wartość=$zmienna. No chyba, że Pan mówi o czym innym, a ja nie jarzę (to moja wina).
za przekazanie danych odpowiada ta sekcja :
  1. <?php
  2. print ('<br><br><BR><div align="center">
  3. <input type="hidden" name="kwota" value='.$kwota.'>
  4. <input type="hidden" name="t200" value='.$t200.'>
  5. <input type="hidden" name="t500" value='.$t500.'>
  6. <input type="hidden" name="t1" value='.$t1.'>
  7.  
  8. <input type="hidden" name="tb200" value='.$tb200.'>
  9. <input type="hidden" name="tb500" value='.$tb500.'>
  10. <input type="hidden" name="tb1" value='.$tb1.'>
  11.  
  12. <input type="hidden" name="tz300" value='.$tz300.'>
  13. <input type="hidden" name="tz750" value='.$tz750.'>
  14. <input type="hidden" name="tz15" value='.$tz15.'>
  15.  
  16. <input type="hidden" name="tm300" value='.$tm300.'>
  17. <input type="hidden" name="tm750" value='.$tm750.'>
  18. <input type="hidden" name="tm15" value='.$tm15.'>
  19. <input type="hidden" name="tr500" value='.$tr500.'>
  20.  
  21. <input type="hidden" name="e_mail" value='.$e_mail.'>
  22. <input type="hidden" name="nazwa_fir" value='.$nazwa_fir.'>
  23. <input type="hidden" name="nip" value='.$nip.'>
  24. <input type="hidden" name="imie_i_nazw" value='.$imie_i_nazw.'>
  25. <input type="hidden" name="ulica" value='.$ulica.'>
  26. <input type="hidden" name="kodp" value='.$kodp.'>
  27. <input type="hidden" name="miasto" value='.$miasto.'>
  28. <input type="hidden" name="telefon" value='.$telefon.'>
  29. <input type=button class=button value="wróć do zamówienia" onClick="java script:window.close()">
  30. <input type="submit" value="Wyślij zamówienie" name="submit">
  31. </div>');
  32. ?>

jeśli coś jest nie tak, a chyba jest skoro nie działa jak chcę, proszę o sugestie
1. jak wywołać funkcję po naciśnięciu klawisza
2. ewentualnie jak poprawić powyższy kod aby nie obcinało mi stringów na spacjach

Pozdrawiam

Scio me nihil scire
Wiem, że nic nie wiem - Sokrates.
nospor
po pierwsze: nie Pan, a nospor
po drugie: nie czaisz wogole tongue.gif

Przyklad:
  1. <?php
  2. //twoj kod:
  3. echo '<input value='.$zmienna.' />';
  4.  
  5. //moj kod
  6. echo '<input value="'.$zmienna.'" />';
  7. ?>

Troche jasniej?
kitachi
Witam
No teraz to kawa na ławę, jak dla Ferdka Kiepskiego pseudo j.... , teraz kumam czaczę.
Sprawdzę czy dzieła i opowiem.
Tak na przyszłość jak wywołać funkcję naciskając klawisz ?
Pozdrawiam.

witam
Oczywiście nospor jako tebeściak miał rację, wszystko śmiga jak trzeba i jak chciałem.
Jeszcze tylko jak mi powiecie jak wywołać funkcję naciskając klawisz/link to będę w pełni szczęśliwy.
Pozdrawiam exclamation.gif!
maryaan
jakbys sie jeszcze okreslil co to za funkcja ma byc wywolana (js/php/??) i co rozumiesz pod pojeciem "klawisz" to juz by bylo calkiem fajnie
kitachi
witam
no właśnie jeszcze nie wiem jaką funkcję może by po kolei questionmark.gif zacząłbym od PHP, potem JS.
  1. <input type=button class=button value="wyślij" onClick="wyslij()">

może coś takiego gdzie wywoływaną funkcją byłoby wyslij() lub jakiś link z obrazkiem np :
  1. <a href="../zamow.html"><img src="zamow.gif"></a>

i do tego podpięta funkcja wyślij.

Pozdrawiam
maryaan
funkcji php nie wywolasz "z klikniecia" bo php jest wykonywane po stronie serwera, najpierw do serwera musisz wyslac jakies żądanie a pozniej skrypt docelowy wybiera funkcje do odpalenia na podstawie danych ktore przekazales. Z js jest inaczej bo js dziala po stronie przegladarki i kliknieciem bezposrednio mozesz wywolac funkcje tak jak to powyzej napisales.

Polecam poczytac o roznicach miedzy skryptami wykonywanymi po stronie serwera i klienta, pozwoli to zrozumiec mechanizmy za pomoca ktorych takie skrypty sie uruchamia i uniknac w przyszlosci pytan na ktore odpowiedzi - dla osoby choc troche znajacej temat - sa oczywiste. Jesli chcesz cos dzialac w temacie pisania stron to jest to i tak nieuniknione, wiec im szybciej to zrobisz tym lepiej dla Ciebie.
kitachi
Witam
no tak macie rację, stare nawyki.


Witam ponownie
mam pytanie z innej bajki, jak umieścić logo w pasku przeglądarki, tak jak jest tu na forum ten czerwony kwadracik z napisem php.pl . Powiedzcie jak się ta funkcja nazywa a sam znajdę, bo szukałem ale nie wiedziałem jak to nazwać i nie znalazłem. I czy to jest html, js ?
Pozdrawiam.
maryaan
odpowiedz masz w 5 linijce zrodla strony
kitachi
witam
znalazłem, serdeczne dzięki exclamation.gif!
pozdrawiam
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.