Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]+[JS] Zapytanie SQL w JS, Ciągłe wywoływanie ostatniego zapytania...
peja1990
post
Post #1





Grupa: Zarejestrowani
Postów: 150
Pomógł: 1
Dołączył: 4.12.2010

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


Witam, piszę skrypt, który ma odpowiadać za zmianę języka witryny dla danego użytkownika serwisu (oparcie o adres IP dla gości) i mam pewien problem, gdyż mam do wyboru 3 języki (PL,EN,DE).
Chcę aby po kliknięciu w jedną z flag wysunęło się okienko w dolnym rogu witryny (pozycja fixed), gdzie pojawia się tekst o wyborze języka, informacja o ładowaniu języka itp.
To zrobiłem i działa bez zarzutu ale problem tkwi w tym, że do każdego skryptu dodałem zapytanie SQL, które ma update'ować rekord danego użytkownika np. gdy jego aktualny język to "pl", a kliknie w flagę angielską to zapytanie ma z'update'ować rekord dla jego IP w komórce "lang" z "pl->en".

Mój kod wygląda tak:
  1. <script type="text/javascript">
  2. // Język niemiecki
  3. $(document).ready(
  4. function() {
  5. $(".lang_de").click(
  6. function() {
  7. $(".popup").slideDown();
  8. setInterval(function() {
  9. $(".popup").slideUp();
  10. }, 6000);
  11. var sql = ['<?php mysql_query('UPDATE guests SET lang="de" WHERE ip="'.$_SERVER['REMOTE_ADDR'].'"') or die (mysql_error()); ?>'];
  12. var contents = ['<?php echo $LANG['popup']['lang']['load']; ?>', '<?php echo $LANG['popup']['lang']['change']['de']; ?>'];
  13. var current = 0;
  14. setInterval(function() {
  15. document.getElementById('load_content').innerHTML = contents[current++];
  16. document.getElementById('load_sql').innerHTML = sql;
  17. }, 2000);
  18. setInterval(function() {
  19. parent.location='<?php $PHP_SELF; ?>';
  20. }, 8000);
  21. });
  22. });
  23. // Język angielski
  24. $(document).ready(
  25. function() {
  26. $(".lang_en").click(
  27. function() {
  28. $(".popup").slideDown();
  29. setInterval(function() {
  30. $(".popup").slideUp();
  31. }, 6000);
  32. var sql = ['<?php mysql_query('UPDATE guests SET lang="en" WHERE ip="'.$_SERVER['REMOTE_ADDR'].'"') or die (mysql_error()); ?>'];
  33. var contents = ['<?php echo $LANG['popup']['lang']['load']; ?>', '<?php echo $LANG['popup']['lang']['change']['en']; ?>'];
  34. var current = 0;
  35. setInterval(function() {
  36. document.getElementById('load_content').innerHTML = contents[current++];
  37. document.getElementById('load_sql').innerHTML = sql;
  38. }, 2000);
  39. setInterval(function() {
  40. parent.location='<?php $PHP_SELF; ?>';
  41. }, 8000);
  42. });
  43. });
  44. // Język polski
  45. $(document).ready(
  46. function() {
  47. $(".lang_pl").click(
  48. function() {
  49. $(".popup").slideDown();
  50. setInterval(function() {
  51. $(".popup").slideUp();
  52. }, 6000);
  53. var sql = ['<?php mysql_query('UPDATE guests SET lang="pl" WHERE ip="'.$_SERVER['REMOTE_ADDR'].'"') or die (mysql_error()); ?>'];
  54. var contents = ['<?php echo $LANG['popup']['lang']['load']; ?>', '<?php echo $LANG['popup']['lang']['change']['pl']; ?>'];
  55. var current = 0;
  56. setInterval(function() {
  57. document.getElementById('load_content').innerHTML = contents[current++];
  58. document.getElementById('load_sql').innerHTML = sql;
  59. }, 2000);
  60. setInterval(function() {
  61. parent.location='<?php $PHP_SELF; ?>';
  62. }, 8000);
  63. });
  64. });
  65. </script>
  66. <div class="top">
  67. <span class="line"></span>
  68. <div class="center">
  69. <div class="box">
  70. <ul class="left">
  71. <li class="log_webmail"><?php echo $LANG['top']['log_webmail']; ?></li>
  72. <li class="log_system"><?php echo $LANG['top']['log_system']; ?></li>
  73. </ul>
  74. <ul class="right">
  75. <li class="lang_de <?php if($GUEST['lang']=='de') {echo 'active';} ?>"></li>
  76. <li class="lang_en <?php if($GUEST['lang']=='en') {echo 'active';} ?>"></li>
  77. <li class="lang_pl <?php if($GUEST['lang']=='pl') {echo 'active';} ?>"></li>
  78. <li><?php echo $LANG['top']['change_lang']; ?></li>
  79. </ul>
  80. </div>
  81. </div>
  82. </div>
  83.  
  84. <div class="popup"><div class="bg"><?php echo $LANG['popup']['lang']['select'].$br.'<div id="load_content"></div>'.'<div id="load_sql"></div>'; ?></div></div>


Wszystko działa ładnie, lecz nie ważne którą flagę kliknę, zawsze wywoływane jest ostatnie zapytanie mySQL, w tym przypadku dla języka PL.
Dla przykładu: mój aktualny język to EN, klikam w DE, a skrypt i tak wywołuje zapytanie dla PL i zmienia mi język na PL a nie na DE.

Próbowałem to robić na wiele sposobów, lecz jeszcze nie udało mi się znaleźć odpowiedniego, dlatego piszę na forum mając nadzieję, że ktoś z Was mi pomoże (IMG:style_emoticons/default/smile.gif)

Za pomoc będę niezmiernie wdzięczny.
Za każdą odpowiedź daję "POMÓGŁ" !

Serdecznie pozdrawiam.
Kamil Dunaj.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Ogólnie zachęcanie POMOGŁ jest żałosne.

Co do tematu:
1) Tworzysz 3 razy zmienną sql to pewnie ci się za każdym razem nadpisuje
2) Tworzysz w kodzie html zmienną sql, którą potem na serwerze wykonujesz... ałć... bez problemu mogę wykonać dowolne zapytanie na Twojej bazie

Do serwera powinieneś przekazywać tylko aktualnie kliknięty język. To wszystko. Zapytanie sql masz budować już po stronie serwera przed samym wykonaniem.

3) Bez sensu tworzysz x razy ten sam kod. Napisz jedną funkcję, która przyjmie parametry język i po sprawie.
Go to the top of the page
+Quote Post
peja1990
post
Post #3





Grupa: Zarejestrowani
Postów: 150
Pomógł: 1
Dołączył: 4.12.2010

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


Cytat(nospor @ 22.09.2011, 14:08:28 ) *
Ogólnie zachęcanie POMOGŁ jest żałosne.

Co do tematu:
1) Tworzysz 3 razy zmienną sql to pewnie ci się za każdym razem nadpisuje
2) Tworzysz w kodzie html zmienną sql, którą potem na serwerze wykonujesz... ałć... bez problemu mogę wykonać dowolne zapytanie na Twojej bazie

Do serwera powinieneś przekazywać tylko aktualnie kliknięty język. To wszystko. Zapytanie sql masz budować już po stronie serwera przed samym wykonaniem.

3) Bez sensu tworzysz x razy ten sam kod. Napisz jedną funkcję, która przyjmie parametry język i po sprawie.


Dzięki, a jesteś w stanie przedstawić swoją propozycję tego skryptu ?
Go to the top of the page
+Quote Post

Posty w temacie
- peja1990   [PHP]+[JS] Zapytanie SQL w JS   22.09.2011, 12:57:37
- - phpion   Cytat(peja1990 @ 22.09.2011, 13:57:37...   22.09.2011, 13:04:57
- - peja1990   Dobrze mistrzu A jesteś w stanie mi pomóc ?   22.09.2011, 13:07:43
- - nospor   Ogólnie zachęcanie POMOGŁ jest żałosne. Co do tem...   22.09.2011, 13:08:28
|- - peja1990   Cytat(nospor @ 22.09.2011, 14:08:28 )...   22.09.2011, 13:16:23
- - sunpietro   Od siebie tylko dodam, że mieszanie kodu JS i PHP ...   22.09.2011, 13:33:48
- - peja1990   Super, a potrafisz to zrobić tak jak należy i żeby...   22.09.2011, 13:34:44
- - Kużdo   Nadal nie zrozumiałeś. Po stronie przeglądarki nie...   22.09.2011, 15:52:28
- - kpt_lucek   Ja osobiście zrobiłbym to tak: [HTML] pobierz, pl...   22.09.2011, 19:40:42
|- - peja1990   Cytat(kpt_lucek @ 22.09.2011, 20:40:4...   22.09.2011, 20:25:13
- - Kużdo   Po prywatnej korespondencji z peja1990 wiem, że ta...   22.09.2011, 19:52:42
- - kpt_lucek   Cytat(Kużdo @ 22.09.2011, 20:52:42 ) ...   22.09.2011, 19:55:50
- - nospor   Poprawka: <li lang="de" class=...   22.09.2011, 20:31:41
|- - peja1990   Cytat(nospor @ 22.09.2011, 21:31:41 )...   22.09.2011, 20:37:24
- - nospor   Odpal firebuga dla FIrefox i zobacz, czy ci ten aj...   22.09.2011, 20:38:38
|- - peja1990   Cytat(nospor @ 22.09.2011, 21:38:38 )...   22.09.2011, 20:46:42
- - nospor   Naprawdę nie musisz mnie/nas informować o tym. Pop...   22.09.2011, 20:49:46
|- - peja1990   Cytat(nospor @ 22.09.2011, 21:49:46 )...   22.09.2011, 20:52:11
- - nospor   TEn kod: $('li').click(function(){ .....   22.09.2011, 20:55:11
- - Kużdo   Nadal jestem zdania, że jest to zbędne, ponieważ p...   22.09.2011, 21:03:45
|- - peja1990   CytatTEn kod: $('li').click(function(...   22.09.2011, 21:08:49
- - Kużdo   Cytat(peja1990 @ 22.09.2011, 22:08:49...   22.09.2011, 21:28:22
- - peja1990   Cytat(Kużdo @ 22.09.2011, 22:28:22 ) ...   22.09.2011, 22:03:17


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

 



RSS Aktualny czas: 2.10.2025 - 22:41