Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ PHP _ [jQuery][PHP]

Napisany przez: mitorski 2.06.2014, 23:24:11

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. <http://december.com/html/4/element/html.html xmlns="http://www.w3.org/1999/xhtml">
  3. <http://december.com/html/4/element/head.html>
  4. <http://december.com/html/4/element/meta.html http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  5. <http://december.com/html/4/element/title.html>Tytuł</http://december.com/html/4/element/title.html>
  6. <http://december.com/html/4/element/script.html type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.min.js"></http://december.com/html/4/element/script.html>
  7. <http://december.com/html/4/element/script.html type="text/javascript" src="script.js"></http://december.com/html/4/element/script.html>
  8. <http://december.com/html/4/element/link.html rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css">
  9. <http://december.com/html/4/element/link.html rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap-theme.min.css">
  10. <http://december.com/html/4/element/link.html rel="stylesheet" href="css/swgame.css">
  11. </http://december.com/html/4/element/head.html>
  12. <http://december.com/html/4/element/body.html>
  13. <http://december.com/html/4/element/div.html class="containter">
  14. <http://december.com/html/4/element/div.html class="row" style="width:70%;margin:5% auto;">
  15. <http://december.com/html/4/element/div.html class="col-md-3" style="border:2px white solid;">
  16. wybierz plec:
  17. <http://december.com/html/4/element/div.html id="sex">
  18. <http://december.com/html/4/element/a.html href="sex.php?sex=male">facet</http://december.com/html/4/element/a.html>
  19. <http://december.com/html/4/element/a.html href="sex.php?sex=famale">laseczka</http://december.com/html/4/element/a.html>
  20. </http://december.com/html/4/element/div.html>
  21. wybierz rase:
  22. <http://december.com/html/4/element/div.html id="race">
  23. <http://december.com/html/4/element/a.html href="sex.php?race=human">czlowiek</http://december.com/html/4/element/a.html>
  24. <http://december.com/html/4/element/a.html href="sex.php?race=darkelf">mroczny elf</http://december.com/html/4/element/a.html>
  25. <http://december.com/html/4/element/a.html href="sex.php?race=elf">elf</http://december.com/html/4/element/a.html>
  26. <http://december.com/html/4/element/a.html href="sex.php?race=gnome">gnom</http://december.com/html/4/element/a.html>
  27. </http://december.com/html/4/element/div.html>
  28. </http://december.com/html/4/element/div.html>
  29. <http://december.com/html/4/element/div.html class="col-md-6" style="background:blue;">
  30. <http://december.com/html/4/element/div.html id="overview">
  31. <http://december.com/html/4/element/div.html class="background"></http://december.com/html/4/element/div.html>
  32. <http://december.com/html/4/element/div.html class="race"></http://december.com/html/4/element/div.html>
  33. </http://december.com/html/4/element/div.html>
  34. </http://december.com/html/4/element/div.html>
  35. <http://december.com/html/4/element/div.html class="col-md-3" style="background:red;"></http://december.com/html/4/element/div.html>
  36. </http://december.com/html/4/element/div.html>
  37. </http://december.com/html/4/element/div.html>
  38.  
  39. <http://december.com/html/4/element/script.html>
  40. $(document).ready(function(){
  41. $('#sex a').click(function(){
  42. var href = $(this).attr('href');
  43. $('#overview .background').load(href);
  44. return false;
  45. });
  46. });
  47. </http://december.com/html/4/element/script.html>
  48. <http://december.com/html/4/element/script.html>
  49. $(document).ready(function(){
  50. $('#race a').click(function(){
  51. var href = $(this).attr('href');
  52. $('#overview .race').load(href);
  53. return false;
  54. });
  55. });
  56. </http://december.com/html/4/element/script.html>
  57. </http://december.com/html/4/element/body.html>
  58. </http://december.com/html/4/element/html.html>


A tak PHP:
  1. <?php
  2.  
  3.  
  4. http://www.php.net/error_reporting(E_ALL ^ E_NOTICE);
  5. http://www.php.net/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 = http://www.php.net/array('sex' => $sex, 'race' => $race);
  24. http://www.php.net/print_r($char);
  25. ?>


A to wynik z print_r:
  1. http://www.php.net/array ( [sex] => famale [race] => )
  2. http://www.php.net/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. http://www.php.net/array ([sex] => famale [race] => human)

Napisany przez: johny_s 2.06.2014, 23:42:51

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

Napisany przez: mitorski 3.06.2014, 05:46:43

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

Napisany przez: MatKus 3.06.2014, 06:40:32

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

  1.  
  2. ...
  3.  
  4. http://www.php.net/session_start();
  5.  
  6. ...
  7.  
  8. if (http://www.php.net/in_array($_GET['sex'],http://www.php.net/array('female','male')) $_SESSION['character']['sex']=$_GET['sex'];
  9. if (http://www.php.net/in_array($_GET['race'],http://www.php.net/array('human','elf','darkelf')) $_SESSION['character']['race']=$_GET['race'];
  10.  
  11. $character=$_SESSION['character'];
  12.  
  13. if ([coś co robisz, żeby przejść dalej])
  14. {
  15. if ($character['sex']=='' OR $character['race']=='')
  16. {
  17. http://www.php.net/echo('musisz wybrać płeć i rasę');
  18. } else
  19. {
  20. ...idziesz dalej...
  21. }
  22. }
  23.  

Napisany przez: mitorski 3.06.2014, 18:21:01

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. <http://december.com/html/4/element/script.html>
  2. $(document).ready(function(){
  3. $('#sex a, #race a').click(function(){
  4. var href = $(this).attr('href');
  5. $('#overview .background').load(href);
  6. return false;
  7. });
  8. });
  9. </http://december.com/html/4/element/script.html>


I tyle....
Dzięki panowie za chęci!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)