Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Jak przepisać kolor do sesji?
Saki
post
Post #1





Grupa: Zarejestrowani
Postów: 240
Pomógł: 2
Dołączył: 5.12.2010
Skąd: Fulda

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


Chce zrobić aby każdy user mógł sobie zmienić kolor tła i zrobiłem coś takiego:

  1. <?php session_start();
  2.  
  3. <form action="view?id='.$_GET['id'].'" method="POST">
  4. <input type="submit" name="blue" value="Niebieski" >
  5. </form>
  6.  
  7. <form action="view?id='.$_GET['id'].'" method="POST">
  8. <input type="submit" name="yellow" value="Żółty" >
  9. </form>
  10. ';
  11.  
  12.  
  13. if ($_POST['blue']){
  14. $_SESSION['0060C7'] = $background;
  15. }
  16.  
  17. if ($_POST['yellow']){
  18. $_SESSION['FDFFBD'] = $background;
  19. }
  20. else
  21. {
  22. $_SESSION['0060C7'] = $background; #a to jest standardowy kolor
  23. }
  24. echo $background; #Chce aby tutaj pokazywało się np. FDFFBD tylko się nic nie pokazuje. Bardzo proszę o pomoc.
  25.  


Tutaj chce dodać: http://wklej.pr0geek.com/

Ten post edytował Saki 14.03.2011, 04:47:53


--------------------
Moje serwisy: services.itunix.eu | spytajsie.com

Server: Debian; Desktop: Mac Mini 10.8.1, ArchLinux XFCE
Go to the top of the page
+Quote Post
ciekawskiii
post
Post #2





Grupa: Zarejestrowani
Postów: 467
Pomógł: 39
Dołączył: 7.11.2010
Skąd: Raz tu, raz tam

Ostrzeżenie: (30%)
XX---


$background w tym przypadku jest pusta wiec nic dziwnego, ze nic nie wyswietla. Dziwnie to zrobiles, zrob jedna sesje np. $_SESSION['kolor'] i do tego przypisuj kody kolorow czyli cos takiego
  1. if($_POST['blue']){
  2. $_SESSION['kolor'] = "#0060C7";
  3. }elseif($_POST['yellow']){
  4. $_SESSION['kolor'] = "#FDFFBD";
  5. }

a session_destroy() wywal.


--------------------
Go to the top of the page
+Quote Post
Saki
post
Post #3





Grupa: Zarejestrowani
Postów: 240
Pomógł: 2
Dołączył: 5.12.2010
Skąd: Fulda

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


Cytat(ciekawskiii @ 14.03.2011, 06:56:49 ) *
$background w tym przypadku jest pusta wiec nic dziwnego, ze nic nie wyswietla. Dziwnie to zrobiles, zrob jedna sesje np. $_SESSION['kolor'] i do tego przypisuj kody kolorow czyli cos takiego
  1. if($_POST['blue']){
  2. $_SESSION['kolor'] = "#0060C7";
  3. }elseif($_POST['yellow']){
  4. $_SESSION['kolor'] = "#FDFFBD";
  5. }

a session_destroy() wywal.


Działa! smile.gif
Zrobiłem tak jak napisałeś:
  1. if($_POST['yellow']){
  2. $_SESSION['kolor'] = "#FDFFBD";
  3. }
  4. elseif($_POST['green']){
  5. $_SESSION['kolor'] = "#A6FFAA";
  6. }
  7. else{
  8. $_SESSION['kolor'] = "#0060C7";
  9. }


Tylko jest jeden problem, trzeba kliknąć 2 razy aby zmienił kolor.


--------------------
Moje serwisy: services.itunix.eu | spytajsie.com

Server: Debian; Desktop: Mac Mini 10.8.1, ArchLinux XFCE
Go to the top of the page
+Quote Post
ciekawskiii
post
Post #4





Grupa: Zarejestrowani
Postów: 467
Pomógł: 39
Dołączył: 7.11.2010
Skąd: Raz tu, raz tam

Ostrzeżenie: (30%)
XX---


Bo tak dziala sesja, proponuje zrobic tak, formularz zostawic tak jak jest ale przekierowac go na drugi plik w ktorym wykona sie zmiana i na koncu tego przekierowanie headerem spowrotem na strone formularza, rozumiesz?wink.gif

Ten post edytował ciekawskiii 14.03.2011, 07:31:32


--------------------
Go to the top of the page
+Quote Post
cudny
post
Post #5





Grupa: Zarejestrowani
Postów: 387
Pomógł: 66
Dołączył: 31.03.2005
Skąd: Kielce

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


bo pewnie nie zadeklarowałeś na początku zmiennej background i w ogóle posty wysyłasz submitem gdzie IE6 nie przeczyta tego. Ja bym to zrobił tak:
  1. <?php session_start(); ?>
  2.  
  3. <form action="view?id='.$_GET['id'].'" method="POST">
  4. <input type="hidden" name="colour" value="blue" >
  5. <input type="submit" name="niebieski" value="Niebieski" >
  6. </form>
  7.  
  8. <form action="view?id='.$_GET['id'].'" method="POST">
  9. <input type="hidden" name="colour" value="yellow" >
  10. <input type="submit" name="yellow" value="Żółty" >
  11. </form>
  12. <?php
  13. $kolory = array(
  14. 'blue' => '#0060C7',
  15. 'yellow' => '#FDFFBD',
  16. 'standard' => '#0060C7'
  17. );
  18.  
  19. if(isset($kolory[$_POST['colour']])) {
  20. $background = $_SESSION['colour'] = $kolory[$_POST['colour'];
  21. } elseif(isset($_SESSION['colour'])) {
  22. $background = $_SESSION['colour'];
  23. } else {
  24. $background = $kolory['standard'];
  25. }
  26. echo $background;


Mieszaj kod HTML - przy większych aplikacjach bardzo to pomaga czyli: <?php session_start(); ?> tutaj jakis html <?php if(isset($cc)) { ?> costam <?php } else { ?> cośtam <?php } ?>
Nie używaj tak submitów, najlepiej hiddenami to załatwiać i nie twórz na stronie tylu formularzy - jak byś miał 100 kolorów to 100 formularzy robisz - strasznie dużo strona będzie zajmować... (jak nie masz jak tego zrobić w html to wartości przypisuj do obiektów javascript i podstawiaj do jednego hiddena - javascript jest super tongue.gif )
mam nadzieję że pomogło smile.gif
Acha, mogą być literówki bo kodu nie sprawdzałem tongue.gif

Ten post edytował cudny 14.03.2011, 08:56:00


--------------------
..::: Jak pomogłem to kliknij pomógł. Tak rzadko używacie tej opcji :( :::..
Go to the top of the page
+Quote Post
Saki
post
Post #6





Grupa: Zarejestrowani
Postów: 240
Pomógł: 2
Dołączył: 5.12.2010
Skąd: Fulda

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


Cytat(ciekawskiii @ 14.03.2011, 07:30:20 ) *
Bo tak dziala sesja, proponuje zrobic tak, formularz zostawic tak jak jest ale przekierowac go na drugi plik w ktorym wykona sie zmiana i na koncu tego przekierowanie headerem spowrotem na strone formularza, rozumiesz?wink.gif


Działa! Jesteś wielki smile.gif
Zrobiłem tak:

  1. <?php
  2.  
  3.  
  4. <form action="'.$_SERVER['REQUEST_URI'].'" method="POST" class="select_color"><input type="submit" name="blue" value="Niebieski" ></form>
  5. <form action="'.$_SERVER['REQUEST_URI'].'" method="POST" class="select_color"><input type="submit" name="yellow" value="Żółty" ></form>
  6. <form action="'.$_SERVER['REQUEST_URI'].'" method="POST" class="select_color"><input type="submit" name="green" value="Zielony" ></form>
  7. ';
  8.  
  9. if($_POST['yellow']){
  10. $_SESSION['kolor'] = "#FDFFBD";
  11. }
  12. elseif($_POST['green']){
  13. $_SESSION['kolor'] = "#A6FFAA";
  14. }
  15. else{
  16. $_SESSION['kolor'] = "#0060C7";
  17. }
  18.  
  19. header('Location: '.$_SERVER['REQUEST_URI'].'');
  20.  
  21. ?>


PS. Wiesz może jak zrobić aby np. div nie schodził w dół? Wiedziałem kiedyś jak to zrobić w CSS ale zapomniałem, bo teraz potrzebuje bo mam 3 formularze w każdej nowej linii a chce aby byli koło siebie:)


--------------------
Moje serwisy: services.itunix.eu | spytajsie.com

Server: Debian; Desktop: Mac Mini 10.8.1, ArchLinux XFCE
Go to the top of the page
+Quote Post
cudny
post
Post #7





Grupa: Zarejestrowani
Postów: 387
Pomógł: 66
Dołączył: 31.03.2005
Skąd: Kielce

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


Po co przeładowywać tą stronę ?
Dawaj to co napisałem i będzie hulać jak złoto biggrin.gif


--------------------
..::: Jak pomogłem to kliknij pomógł. Tak rzadko używacie tej opcji :( :::..
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 Aktualny czas: 21.08.2025 - 03:06