Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]+[JS] Zapytanie SQL w JS, Ciągłe wywoływanie ostatniego zapytania...
peja1990
post 22.09.2011, 12:57:37
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 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

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
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.07.2025 - 14:32