Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Zmiana koloru strony
Forum PHP.pl > Forum > Przedszkole
Efan
Mam 4 wersje kolorystyczne strony. W pliku konfiguracyjnym mam taką zmienną:

$_IMG='1';

Mogę ręcznie zmieniać kolorystykę zamiast 1 wpisać 2,3 lub 4.
Jak mogę uczynić, że użytkownik będzie sam mógł wybierać kolorystykę klikając w link na stronie np: zielony, czerwony, niebieski, żółty
Wykrywacz
Zrób sobie np. inputa typu select. wsadź tam te kolorki w value wpisz ich id, po czym zmień na $_IMG= $_POST['id_coloru'];
robos85
do tego użyj np COOKIES żeby zapamiętało wybór po wyłączeniu przeglądarki
Efan
spróbuje z selectem

Tak więc mam taki kod:

  1. Zmień kolor:
  2. <option value="1" selected>Niebieski</option>
  3. <option value="2">Szary</option>
  4. <option value="3">Zielony</option>
  5. <option value="4">Pomarańczowy</option>
  6. <input type="button" name="zmiana_koloru" value="Wczytaj">


Pytanie jaka ma być akcja żeby wartość z formularza została przesłana do pliku ze zmienną?
Wykrywacz
Najprościej method="post".
I potem odczytujesz ją tak jak ci napisałem $_IMG= $_POST['zmiana_koloru'];

mała poprawka:
  1. <?php
  2. <form enctype="multipart/form-data" action="xxx.php" method="post" >
  3. <select name="zmiana_koloru">
  4. <option value="1">Niebieski</option>
  5. <option value="2">Szary</option>
  6. <option value="3">Zielony</option>
  7. <option value="4">Pomarańczowy</option>
  8. </select>
  9. <input type="submit" value="Wczytaj">
  10. ?>


A jak chcesz aby zapamiętał to tak jak powiedział @Efan wrzuć to do cookie.

a potem albo na ifie który sprawdza czy masz pusty $_POST['zmiana_koloru'], jak tak to wsadza wartość z ciacha, jak nie to z posta.
Efan
Pewnie rozwiązanie jest prostsze niż myślę,ale z racji znajomości PHP nie mogę sobie poradzić.

index.php

  1. <form enctype="multipart/form-data" action="dane.inc.php" method="post" >
  2. <select name="zmiana_koloru">
  3. <option value="1">Niebieski</option>
  4. <option value="2">Szary</option>
  5. <option value="3">Zielony</option>
  6. <option value="4">Pomarańczowy</option>
  7. <input type="submit" value="Wczytaj">


dane.inc.php

  1. <?php
  2. $_IMG=$_POST['zmiana_koloru'];
  3. ?>


Takie rozwiązanie nie działa!

O cookies już nawet nie pytam
piotrooo89
dlaczego masz tak dziwnie nazany ten plik? a sposób Wykrywacza jest na 100% poprawny.
Efan
To jest część aplikacji którą próbuję przerobić, dlatego zmiana nazwy raczej nie wchodzi w grę.

Widzę to tak: Wybrana wartość wysyłana jest do pliku dane.inc.php ale wyświetlany jest index.php
Wykrywacz
Rozwiń co oznacza nie działa?

Zacznij od wyświetlenia $_POSTA (wyechuj go), zobacz czy faktycznie przesyła ci właściwą wartość i czy w ogóle coś przesyła.

Cytat
Widzę to tak: Wybrana wartość wysyłana jest do pliku dane.inc.php ale wyświetlany jest index.php

Rozumiem że dane.inc.php gdzieś sobie dołączasz w skrypcie, np. poprzez include? W takim wypadku niech formularz odnosi się do index.php
w tym momencie przed załączeniem dane.inc.php zrób $_IMG= $_POST['zmiana_koloru'];
Efan
Okej, po wysłaniu danych do index.php zmiana koloru zaskakuje, ale podczas pierwszego ładowania strony nie ma wybranego szablonu, selected w option nie pomaga.

Mogę zrobić taki myk:

  1. <?php
  2. $_IMG='2';
  3. $_IMG=$_POST['zmiana_koloru'];
  4. ?>



Jednak nie działa takie przypisanie wartości. Tak więc jak ustawić zmienną domyślna powiedzmy na 2?
Wykrywacz
  1. <?php
  2. if (isset($_POST['zmiana_koloru']){
  3. $_IMG=$_POST['zmiana_koloru'];
  4. }
  5. else {
  6. $_IMG='2';
  7. }
  8. ?>
Efan
Storna jest trochę skomplikowana.

W pliku index.php jest tylko
  1. <?php
  2. include('k.php');
  3. ?>

Z kolei w k.php jest include do dane.inc.php a tam dopiero jest $_IMG="1"

Tak więc Twoje rozwiązanie nie działa.


tak więc da się coś zrobić z tym problemem?

W procedurze brakowało jednego nawiasu, tak więc już działa. Dzięki Wykrywacz!
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.