Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php], [js] wyswietlenie okienka alertu w pokręconym kodzie, dodanie w kodzie fragmentu dopowiedzialnego za okienko ALERT
graveozz
post 22.04.2008, 09:55:34
Post #1





Grupa: Zarejestrowani
Postów: 41
Pomógł: 1
Dołączył: 28.03.2008
Skąd: Kielce

Ostrzeżenie: (10%)
X----


Witam!
Mam prośbę/pytanie do specjalistów od łączenia .js i .php z .html`em, poniżej znajduje się dość rozbudowany kod (to wyrwany z kontekstu fragment ale powinien wystarczyć), chodzi o (prawdopodobnie) niewielka modyfikację. W czym problem - chciałbym, aby przy spełnieniu odpowiedniego warunku (w kodzie występuje on dwa razy, ograniczony z obu stron: //!!!!!!!!!!!!! wykrzyknikami, aktualnie wyswietla poleceniem echo treść błędu) wyświetlilo sie okienko js zawierajace kounikat o alercie - typowy ALERT. Wiem, że da się coś takiego zrobić, odpowiednio deklarujac w nagłówku htmla funkcję z komunikatem, który chce wyświetlić, a następnie wywołując jakoś tę funkcję wewnątrz kodu prawdopodobnie w miejscu po warunku miedzy //!!!!!!!!!!!!.
Wiem, że się da ale nie wiem jak, kilka prób podjąłem, na prostszych strukturach działa tutaj nie wiem to zrobić, stąd moja prośba/pytanie, czy mógłby mnie ktoś poinstruować jak co i gdzie? ewentualnie dopisać brakujący kod (było by bardzo miło). Z góry dziękuję za pomoc.
  1. <html>
  2. <head>
  3. </head>
  4. <body>
  5. <?php
  6. require_once 'baza.php';
  7. polacz();
  8. //dodaje wszelkie istniejace terminy
  9. if ($_POST) {
  10. $m = $_POST["m"];
  11. $d = $_POST["d"];
  12. $r = $_POST["r"];
  13. //pobranie z tabeli zabiegi czasu potrzebnego na wykonanie wybranego zabniegu
  14. $zapytanie="SELECT (z_czas) FROM zabiegi WHERE z_nazwa = '".$_POST["wybor_zabiegu"]."'";
  15. $czasdo=mysql_query($zapytanie) 
  16. or die (mysql_error());
  17. //czas potrzebny na wykonanie zabiegu
  18. $dodac=mysql_fetch_array($czasdo);
  19. echo '<h1> Czas trwania wybranego zabiegu - <u>' .$dodac[0]. '</u></h1>';
  20. //sformatowana data początku zabiegu
  21. $data_terminu = $r."-".$m."-".$d." ".$_POST["czas_od"].":00";
  22. //formatowanie daty poczatku zabiegu
  23. $rx="0000";
  24. $mx="00";
  25. $dx="00";
  26. $data_terminu_3 = $rx."-".$mx."-".$dx." ".$dodac[0];
  27. /sprawdzanie czy godzina jest zajeta w przedziale
  28. $zapytanie="SELECT * FROM terminy WHERE '$data_terminu' BETWEEN data_rozpoczecia AND data_zakonczenia";
  29. $odpowiedz=mysql_query($zapytanie)
  30. or die (mysql_error());
  31. $ile_wierszy=mysql_num_rows ($odpowiedz);
  32. //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  33.  if ($ile_wierszy != 0)
  34. {
  35.  echo "<center> <h2> <font color='red'> Godzina rozpoczęcia zabiegu zazębia się z już istniejącym terminem, <br /> by dodać nowy termin kliknij <i> wstecz </i> w Swojej przeglądarce. </font> </h2> </center>";
  36.  die;
  37. }
  38. //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  39. //operacja sumowania czasow wykonywana na tabeli godziny
  40. $wstaw_daty="INSERT INTO godziny (start, stop) VALUES ('$data_terminu','$data_terminu_3')";
  41. $wstaw_daty_odpowiedz = mysql_query($wstaw_daty) 
  42. or die(mysql_error());
  43.  
  44. $zapytanie="SELECT * FROM godziny";
  45. $odpowiedz=mysql_query($zapytanie)
  46. or die (mysql_error());
  47. $wynik=mysql_fetch_array ($odpowiedz);
  48. mysql_free_result($odpowiedz); 
  49.  
  50. $zapytanie="SELECT ADDTIME(start, TIME_FORMAT(stop, '%T')) AS gotowe FROM godziny";
  51. $odpowiedz=mysql_query($zapytanie)
  52. or die (mysql_error());
  53. $wynik=mysql_fetch_array ($odpowiedz);
  54. $data_terminu_3=$wynik[0];
  55. //echo $data_terminu_3;
  56. //echo "<br />";
  57. mysql_free_result($odpowiedz);
  58.  
  59. //kasowanie zawartosci tabeli godziny
  60. $zapytanie="DELETE FROM godziny";
  61. $odpowiedz=mysql_query($zapytanie)
  62. or die (mysql_error());
  63.  //koniec czy jest ok
  64. $zapytanie="SELECT * FROM terminy WHERE '$data_terminu_3' BETWEEN data_rozpoczecia AND data_zakonczenia";
  65. $odpowiedz=mysql_query($zapytanie)
  66. or die (mysql_error());
  67. $ile_wierszy=mysql_num_rows ($odpowiedz);
  68. //echo "znaleziono koniec : ".$ile_wierszy."<br />";
  69.  //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 
  70.  [b] [/b]  if ($ile_wierszy != 0)
  71. {
  72.  echo "<center><h2><font color='red'> Godzina zakończenia zabiegu zazębia się z już istniejącym terminem, <br /> by dodać nowy termin kliknij <i> wstecz </i> w Swojej przeglądarce </font></h2></center>";
  73.  die;
  74. }
  75. // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  76. !!!
  77. $wstawTermin_zapytanie = "INSERT INTO terminy 
  78.  
  79. or die(mysql_error());
  80.  
  81. } else {
  82. $m = $_GET["m"];
  83. $d = $_GET["d"];
  84. $r = $_GET["r"];
  85.  
  86. //pokazuje terminy w danym dniu...
  87. ?>
  88. </table>
  89. </body>
  90. </html>
Go to the top of the page
+Quote Post
revyag
post 22.04.2008, 10:11:32
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 258
Pomógł: 16
Dołączył: 21.09.2004
Skąd: Kielce

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


Jeśli koniecznie chcesz tak mieszać to wystarczy zwykłe echo:
  1. <?php
  2. echo '<script type="text/javascript">alert('Jakieś info');</script>';
  3. ?>


--------------------
-------------

------
Go to the top of the page
+Quote Post
graveozz
post 22.04.2008, 10:32:18
Post #3





Grupa: Zarejestrowani
Postów: 41
Pomógł: 1
Dołączył: 28.03.2008
Skąd: Kielce

Ostrzeżenie: (10%)
X----


Dzieki REVYAG, o to mi chodziło, choć nie do końca takiego spodziewałem się efektu - ale to wina mojego braku doświadczenia w programwoaniu przy użyciu PHP i całkowitego braku znajomości JS. Oczywiście mi pomogłeś! Mam jeszcze pytanko, czy jest możliwy w php skok do wykonywania kodu od danej lini? tzn wyświetlam komunikat alertu tak jak mi poradziles a nastepnie wykonuję kod, ale od miejsca dość odległego, jest jakas funkcja typu GOTO?? chce pominąć fragment odpowiedzialny za dodawanie rekordow do bazy i skoczyc od razu do miejsca gdzie organizowane jest wyświetlanie.

Ten post edytował graveozz 22.04.2008, 10:32:41
Go to the top of the page
+Quote Post
revyag
post 22.04.2008, 10:42:59
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 258
Pomógł: 16
Dołączył: 21.09.2004
Skąd: Kielce

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


GOTO nie ma, a to co chcesz zrobić to zwykły if. Musisz zmienić strukturę kodu, tak aby w zależności od konkretnego warunku wyświetlać info i wykonywać odpowiednie operacje, a nie wyświetlać info i gdzieś skakać.

  1. <?php
  2. if(cos_tam) {
  3. //alert
  4. //dodawanie rekordów
  5. } else {
  6.  //alert
  7.  //wyświetlanie
  8. }
  9. ?>


--------------------
-------------

------
Go to the top of the page
+Quote Post
graveozz
post 22.04.2008, 11:13:39
Post #5





Grupa: Zarejestrowani
Postów: 41
Pomógł: 1
Dołączył: 28.03.2008
Skąd: Kielce

Ostrzeżenie: (10%)
X----


Ok, tak sobie pomylalem o GOTO, wiem ze to niezbyt ladne rozwiazanie ale zalezy mi na szybkim pokazaniu efektu jako takiego i późniejszym dopieszczeniu całości..
Twoja rada jest dla mnie jaknajbardziej zrozumiała i tak pewnie zrobie. Dzięki raz jeszcze za pomoc z alertem ().

Funkcjonalność poprawiona smile.gif
Mam jeszcze jedno pytanie, jak zmienić tekst pojawiający się w nagłówku okienka alert (domyślnie adres strony) i zmienić kosmetykę samego okienka (np inny kolor tła, czy inny kolor czcionki)?
Go to the top of the page
+Quote Post
revyag
post 22.04.2008, 11:18:48
Post #6





Grupa: Przyjaciele php.pl
Postów: 2 258
Pomógł: 16
Dołączył: 21.09.2004
Skąd: Kielce

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


Wyglądu zmienić się nie da. Jest to zależne tylko i wyłącznie od przeglądarki.


--------------------
-------------

------
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: 23.04.2024 - 15:05