peklo
20.03.2014, 19:28:11
witam ponownie juz dzisiaj
chcę do listy rozwijalnej pobrać dane z bazy. Robie tak:
I teraz pobiera i wyświetla mi zamiast nazwy to value=1 lub 2 co jest logiczne. Rozumiem że muszę dodać zdarzenie
if (($ogloszenia['za'])==1)
{
}
else
{
ech 'dzien';
}
czy idę w dobrym kierunku czy może jest na to lepszy sposób?
A może lepiej zastosować tu pętle?
trueblue
20.03.2014, 20:06:29
Jak wygląda tablica $ogloszenia?
Jeśli nie przechowujesz tam odpowiedników wartości "za" (czyli "godzinę", "dzień"), to nie ma kompletnie sensu wplatać tu php i warunków. Chyba, że w zależności do różnych warunków czasem będzie tam tylko "godzinę", czasem "dzień", obydwie lub zero wartości.
peklo
20.03.2014, 20:17:12
do pola select podczas edycji formularza ma być pobrana wartość w zależności od wyboru podczas dodawania do bazy. czyli może być jedna wartość: --wybierz- lub godzinę lub dzień lub inne których nie wpisywałem
trueblue
20.03.2014, 20:21:18
Tak, ale ja pytałem o zwartość tablicy $ogloszenia.
peklo
20.03.2014, 20:31:20
Array ( [id] => 6 [nazwa_ogloszenia] => fwefewfewfewfw [data_dod] => 2014-03-20 18:13:13 [rok] => [opis] => ewfwefewfwefew fewfwefewfew we3e4324322fewfewfew fewf34324 2 2r ef ew f32 442333333333 [miasto2] => eeeeeeeeeeeeeefewfewf [id_kraj] => [id_wojewodztwo] => 2 [czas] => 2014-04-19 19:13:13 [id_kategoria] => 1 [cena] => 2600 [za] => 1 [uszkodzony] => [poj] => [moc] => [przebieg] => [paliwo] => [stan] => [kolor] => [metalic] => [miejsca] => [rejestracja] => [normy] => [oc] => [przeglad] => [vin] => [wlasciciel] => [leasing] => [negocjacja] => [fv] => [kredyt] => [motoh] => [producent] => [naped] => [drzwi] => [karoseria] => [osoba] => [wojewodztwo] => Lubuskie [miasto] => [nazwa_firmy] => [telefon] => [wyb_kategorii1] => Array ( ) [wyb_kategorii2] => Array ( ) [zdjeciak] => Array ( [17] => Array ( [id_ogloszenia] => 6 ) [18] => Array ( [id_ogloszenia] => 6 [im] => 332641757093.png [thumb] => thumb_332641757093.png ) [19] => Array ( [id_ogloszenia] => 6 [im] => 460420852992.png [thumb] => thumb_460420852992.png ) ) [pjk] => Array ( [8] => Array ( [id_prawo_jazdy] => 4 ) [9] => Array ( [id_prawo_jazdy] => 6 ) [10] => Array ( [id_prawo_jazdy] => 8 ) [11] => Array ( [id_prawo_jazdy] => 11 ) ) [wyposazeniew] => Array ( ) )
trueblue
20.03.2014, 20:48:32
A jeśli w tablicy $ogloszenia nie będzie elementu $ogloszenia['za'] o wartości np. 2, to wtedy ma się nie pokazać jako opcja w select?
peklo
20.03.2014, 20:56:11
tak
mogą być w tym wypadku 3 warianty
nie wybrał nic (-wybierz-) czyli null lub 0
lub wybrał 1 (dzien)
lub wybrał 2 (godzina)
trueblue
21.03.2014, 08:30:54
Nie wiem czy się dobrze rozumiemy.
Ja pytam o to jak będzie wyglądał select i czy będzie zależny od wartości w tablicy $ogloszenia, a nie jakie warianty może wybrać użytkownik.
Czyli czy select będzie zawsze zawierał opcje: nic, dzień, miesiąc, czy też różną ich ilość właśnie w zależności od zawartości $ogloszenia.
peklo
21.03.2014, 12:06:22
dane w select są stałe, nic się w nich nie zmienia. Podczas dodawania formularza wybiera się jedną opcję z wielu. Teraz chcę pobrać do select poprostu to co zostało wybrane i tyle
trueblue
21.03.2014, 12:11:42
<option value=''<?php if(empty($ogloszenia['za'])) echo " selected=\"selected\""; ?>>
</option> <option value='1'<?php if($ogloszenia['za']==1) echo " selected=\"selected\""; ?>>godzinę
</option> <option value='2'<?php if($ogloszenia['za']==2) echo " selected=\"selected\""; ?>>dzień
</option>
peklo
21.03.2014, 22:07:27
ok śliczne dzięki. Ale mam jeszcze jedno pytanie. Mam selecta który pobiera z bazy nazwy i jest ich ok 200.
Jak to można załatwić. Ma pobrać tylko jedną wartość jak i tutaj
trueblue
22.03.2014, 10:10:14
A zawartość elementu <option> też masz w bazie czy podobnie jak ten wyżej select, tylko wartości?
peklo
22.03.2014, 11:02:21
mam coś takiego
$pdo = new PDO( DB_DSN, DB_USERNAME, DB_PASSWORD );
$pdo -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = $pdo->prepare('select * from z);
$sql->bindValue('nazwa_z', $nazwa_z);
$sql->execute();
echo "<select name='id_kraj' id='id_kraj'>";
echo "<option value='' >--wybierz--</option>";
while ($row1 = $sql->fetch(PDO::FETCH_ASSOC)) {
echo "<option value='$row1[id_kraj]'>$row1[nazwa_z]</option>";
}
echo "</select>";
i tu jest ok 200 nazw
trueblue
22.03.2014, 12:35:48
Jeśli chcesz zaznaczyć wybraną opcję w select, to robisz podobnie jak podałem wyżej, przy czym warunek wprowadzasz w linii 9.
peklo
24.03.2014, 13:32:26
kurde myślałem że się obędzie bez opisywania wszystkich rekordów. czyli każdy trzeba opisywać tak
<option value=''<?php if(empty($ogloszenia['za'])) echo " selected=\"selected\""; ?>></option>
Turson
24.03.2014, 13:58:18
Jak tworzysz selecta w pętli to w tej pętli możesz to zastosować i będzie jedna linijka
peklo
24.03.2014, 14:47:00
no własnie chodzi mi o jedna linijkę a nie o 200
Turson
24.03.2014, 15:15:44
<?php while ($row1 = $sql->fetch(PDO::FETCH_ASSOC)): ?>
<option value='$row1[id_kraj]'
<?php if($ogloszenia['za']==$row1['id_kraj']) echo " selected"; ?>>
<?php echo $row1['nazwa_z'] ?></option>
<?php endwhile; ?>
peklo
24.03.2014, 17:58:14
kurde zrobiłem tak i coś mi nie pobiera
while ($row1 = $sql->fetch(PDO::FETCH_ASSOC)) {
<option value='$row1[id_kraj]'
<?php if($ogloszenia['id_kraj']==$row1['id_kraj']) echo " selected"; ?>>
<?php echo $row1['nazwa_z'] ?></option>
<?php endwhile; ?>
dobra teraz mi pobiera właściwą nazwe ale nie wiem co wstawić w value.
<option value=''
<?php if($row1['id_kraj']==$ogloszenia['id_kraj']) echo " selected=\"selected\""; ?>>
<?php echo $row1['nazwa_z']?></option>
trueblue
24.03.2014, 18:01:49
Przecież w tym pierwszym wyżej przykładzie, gdzie źle ustawiałeś atrybut selected jest value.
peklo
24.03.2014, 18:04:09
dobra już mam. może komuś się przyda
<option value="
<?php echo $row1['id_wojewodztwo'] ?>"
<?php if($row1['id_wojewodztwo']==$ogloszenia['id_wojewodztwo']) echo " selected=\"selected\""; ?>>
<?php echo $row1['nazwa_w']?></option>
jak już jesteś wewnątrz php to nie otwieraj znacznika jeszcze raz
peklo
24.03.2014, 21:03:06
ok juz działa
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.