Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Sesje ze zmienną
lukaszalbert
post
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 25.02.2009

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


Mam problem ze zmiennymi

Gdy utworzę sesję na stronie a.php w ten sposób to spokojnie ją odczytam na stronie b.php, tzn że to działa
CODE
$_SESSION["kategoriax"] = jakis tekst;


Jeśli jednak spróbuję wstawić do sesji zamiast gołego tekstu zmienną z formularza to już się niechce ona wyświetlić na stronie b.php. Po prostu mam puste pole. Oto kod.

CODE
session_start();
echo'
<form enctype="multipart/form-data" action="dodaj.php" method="POST">
<input class="input" type="hidden" name="MAX_FILE_SIZE" value="1000000" />
Adres Obrazu <input class="input" type="text" name="rozdzielczosc"><br><br>
<select name="kategoria">';
echo '
Wybierz Kategorię: <br>
<option class="input" selected >Bez Kategorii</option>';
$sql = mysql_query("SELECT kategoria FROM kategoria ORDER BY kategoria ASC ") or die('Błąd Bazy MySQL'); // zapytanie mysql
while ($rekord = mysql_fetch_assoc ($sql)) {
$id = $rekord['id']; $kategoria=$rekord['kategoria'];
echo '<option name="'.$kategoria.'" class="input" >'.$kategoria.'</option>';
}
echo '</select><br>
<input class="submit" type="submit" value="Przejdź do kolejnego etapu">
</form>
';


$x = $_POST['kategoria'];
$_SESSION["kategoriax"] = $x;


Ten post edytował lukaszalbert 24.10.2013, 22:55:41
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
SmokAnalog
post
Post #2





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


To niestety nie działa w taki sposób, że zapiszesz sobie zmienną z $_POST w sesji i pole automatycznie się ustawi na odpowiednią wartość.

  1. Po pierwsze, do sesji zapisuj przed wyświetlaniem formularza, nie po.
  2. Po drugie, musisz odpowiednio potem użyć tej wartości z sesji, na tej zasadzie:
    1. <option value="smerf"<?php if(isset($_SESSION['kategoriax'] && $_SESSION['kategoriax'] === 'smerf'): echo ' selected="selected"' ?>>Lubię Smerfy</option>
Go to the top of the page
+Quote Post
lukaszalbert
post
Post #3





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 25.02.2009

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


Tego to już w ogóle nie ogarniam. skonstruujesz mi coś?
Go to the top of the page
+Quote Post
SmokAnalog
post
Post #4





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


U Ciebie można np. tak:
  1. echo '<option name="'.$kategoria.'" class="input"' . ((isset($_SESSION['kategoriax']) && $_SESSION['kategoriax'] === $kategoria) ? ' selected="selected"' : '') . '>'.$kategoria.'</option>';

Tylko usuń jeszcze selected z opcji "Bez kategorii" i zrób to co napisałem w poprzednim poście.
Go to the top of the page
+Quote Post
lukaszalbert
post
Post #5





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 25.02.2009

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


Teraz mam coś takiego i działa bo widzę treść dodaną do bazy. I mam kolejny problem. Po otworzeniu tej drugiej strony automatycznie mi wtedy dodaje do bazy danych przesłaną treść. A ja chciałbym najpierw te dane wyświetlić jak to miałem pierwotnie. Nie rozumiem jak może z automatu się to dziać.

Próbuję jeszcze dodać do sesji kolejną zmienną z pola input "rozdzielczosc". Ale coś nie chodzi to.

CODE

<?php

session_start();
echo'
<form enctype="multipart/form-data" action="dodaj.php" method="POST">
<input class="input" type="hidden" name="MAX_FILE_SIZE" value="1000000" />
Adres Obrazu <input name="rozdzielczosc" class="input"' . ((isset($_SESSION['rozdzielczoscx']) && $_SESSION['rozdzielczoscx'] === 'rozdzielczosc') ? '' : '') . '><br><br>
<select name="kategoria">';
echo '
Wybierz Kategorię: <br>

<option class="input">Bez Kategorii</option>';
$sql = mysql_query("SELECT kategoria FROM kategoria ORDER BY kategoria ASC ") or die('Błąd Bazy MySQL'); // zapytanie mysql
while ($rekord = mysql_fetch_assoc ($sql)) {
$id = $rekord['id'];
$kategoria=$rekord['kategoria'];
echo '<option name="'.$kategoria.'" class="input"' . ((isset($_SESSION['kategoriax']) && $_SESSION['kategoriax'] === $kategoria) ? ' selected="selected"' : '') . '>'.$kategoria.'</option>';
}


echo '</select><br>
<input class="submit" type="submit" value="Przejdź do kolejnego etapu">
</form>
';

?>


Ten post edytował lukaszalbert 25.10.2013, 11:25:17
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 - 06:27