Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [jQuery][PHP], Rozdwojona tablica PHP
tzm
post 2.06.2014, 23:24:11
Post #1





Grupa: Zarejestrowani
Postów: 675
Pomógł: 58
Dołączył: 17.12.2013

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


Cześć, siema, chyba pierwszy raz spotykam się z problemem który moim zdaniem wykracza poza ramy przedszkola a sądzę tak bo braku jakiej kolwiek podpowiedzi w google...

Otóż piszę sobie rejestrację do gry identyczną jak w sfgame.pl tyle że uparłem się na zrobienie tego bez flasha...
Postawiłem na jQuery i ogólnie udało mi się osiągnąć zamierzony efekt z jednym mankamentem(dodam że jestem początkujący w JS, nie kumam totalnie nic)..
Tak wygląda szablon strony odpowiadający za zmieniarkę płci, rasy postaci...
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  4. <title>Tytuł</title>
  5. <script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
  6. <script type="text/javascript" src="script.js"></script>
  7. <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css">
  8. <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap-theme.min.css">
  9. <link rel="stylesheet" href="css/swgame.css">
  10. </head>
  11. <div class="containter">
  12. <div class="row" style="width:70%;margin:5% auto;">
  13. <div class="col-md-3" style="border:2px white solid;">
  14. wybierz plec:
  15. <div id="sex">
  16. <a href="sex.php?sex=male">facet</a>
  17. <a href="sex.php?sex=famale">laseczka</a>
  18. </div>
  19. wybierz rase:
  20. <div id="race">
  21. <a href="sex.php?race=human">czlowiek</a>
  22. <a href="sex.php?race=darkelf">mroczny elf</a>
  23. <a href="sex.php?race=elf">elf</a>
  24. <a href="sex.php?race=gnome">gnom</a>
  25. </div>
  26. </div>
  27. <div class="col-md-6" style="background:blue;">
  28. <div id="overview">
  29. <div class="background"></div>
  30. <div class="race"></div>
  31. </div>
  32. </div>
  33. <div class="col-md-3" style="background:red;"></div>
  34. </div>
  35. </div>
  36.  
  37. $(document).ready(function(){
  38. $('#sex a').click(function(){
  39. var href = $(this).attr('href');
  40. $('#overview .background').load(href);
  41. return false;
  42. });
  43. });
  44. </script>
  45. $(document).ready(function(){
  46. $('#race a').click(function(){
  47. var href = $(this).attr('href');
  48. $('#overview .race').load(href);
  49. return false;
  50. });
  51. });
  52. </script>
  53. </body>
  54. </html>


A tak PHP:
  1. <?php
  2.  
  3.  
  4. error_reporting(E_ALL ^ E_NOTICE);
  5. ini_set('display_errors','1');
  6.  
  7. switch($_GET['sex']){
  8. case male;
  9. $sex = 'male';
  10. break;
  11. case famale;
  12. $sex = 'famale';
  13. break;
  14. }
  15. switch($_GET['race']){
  16. case human;
  17. $race = 'human';
  18. break;
  19. case darkelf;
  20. $race = 'darkelf';
  21. break;
  22. }
  23. $char = array('sex' => $sex, 'race' => $race);
  24. print_r($char);
  25. ?>


A to wynik z print_r:
  1. Array ( [sex] => famale [race] => )
  2. Array ( [sex] => [race] => human )


I tutaj jest problem.... co zdupiłem że tablica się rozdwaja jakby?
Wiem że prawie tutaj kodu nie ma i może to być całkowicie błacha sprawa ale nigdy nie pisze kodu dalej póki nie poradzę sobie z jakimś problemem a ten wyskoczył na samym początku pisania zmieniarki... Nie rozumiem dlaczego ta tablica jest wyświetlana podwójnie i za każdym razem któryś rekord jest pusty. Co zrobić żeby ta tablica była jedna jedyna? Z góry dzięki za pomoc i sorki jeśli jednak trzeba przenieść do przedszkola. Aha...
Chciałbym osiągnąć taki efekt:
  1.  
  2. Array ([sex] => famale [race] => human)
Go to the top of the page
+Quote Post
johny_s
post 2.06.2014, 23:42:51
Post #2





Grupa: Zarejestrowani
Postów: 594
Pomógł: 122
Dołączył: 17.07.2005
Skąd: P-na

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


Klikasz raz link z rasą raz z płcią gdzie jeden o drugim nic nie wie, więc masz w sumie 2 wywołania i 2 odpowiedzi, musisz jakoś inaczej tą rejestrację wykombinować, np wybór dać na radiobuttonach

Ten post edytował johny_s 2.06.2014, 23:43:53
Go to the top of the page
+Quote Post
tzm
post 3.06.2014, 05:46:43
Post #3





Grupa: Zarejestrowani
Postów: 675
Pomógł: 58
Dołączył: 17.12.2013

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


Spoko spoko logiczne.. poczytam o radiobuttonach w pracy albo kogoś zapytam, może akurat wiedzą.
Ale i tak z czystej ciekawości chciałbym ciągnąć temat w stronę łączenia tablic.. nie da się tutaj poprawnie skonstruować funkcji z użyciem array_push, array_merge?
Próby na nic się zdają ale nauczony jestem że nie ma rzeczy nie możliwych, choć może RB okażą się wystarczające i najlepsze do tej opcji.

Pozdro
Go to the top of the page
+Quote Post
MatKus
post 3.06.2014, 06:40:32
Post #4





Grupa: Zarejestrowani
Postów: 63
Pomógł: 3
Dołączył: 27.08.2008

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


Możesz przechowywać wybór gracza w sesji.

  1.  
  2. ...
  3.  
  4.  
  5. ...
  6.  
  7. if (in_array($_GET['sex'],array('female','male')) $_SESSION['character']['sex']=$_GET['sex'];
  8. if (in_array($_GET['race'],array('human','elf','darkelf')) $_SESSION['character']['race']=$_GET['race'];
  9.  
  10. $character=$_SESSION['character'];
  11.  
  12. if ([coś co robisz, żeby przejść dalej])
  13. {
  14. if ($character['sex']=='' OR $character['race']=='')
  15. {
  16. echo('musisz wybrać płeć i rasę');
  17. } else
  18. {
  19. ...idziesz dalej...
  20. }
  21. }
  22.  
Go to the top of the page
+Quote Post
tzm
post 3.06.2014, 18:21:01
Post #5





Grupa: Zarejestrowani
Postów: 675
Pomógł: 58
Dołączył: 17.12.2013

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


Nakierowałeś mnie trochę ale to i tak nie to. Korzystając z Twoich sesji i tak robił podwójną tą tablicę.
Prawidłowo wygląda to tak:

  1. $(document).ready(function(){
  2. $('#sex a, #race a').click(function(){
  3. var href = $(this).attr('href');
  4. $('#overview .background').load(href);
  5. return false;
  6. });
  7. });
  8. </script>


I tyle....
Dzięki panowie za chęci!
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: 22.01.2020 - 12:23