• Nem Talált Eredményt

Termékek szűrése

In document Webprogramozás II. (Pldal 168-175)

8. Termékek rendszerezése, szelekciós funkciók

8.2.3 Termékek szűrése

Akciós termékek

A termékek szűrésével egy bizonyos tulajdonság alapján tudjuk megjelení-teni a könyvek egy részét. Ebben a könyváruházban ezt a funkciót nem vittük túlzásba. A felső menüben található egy menüpont, melynek neve Akciók. Itt csak azok a termékek jelennek meg, amelyek akciós termékek, tehát ezt egyfaj-ta szűrésnek is tekinthetjük.

35. ábra: Akciós termékek

Ez a felület a pages könyvtárban lévő specialPage.php fájlban talál-ható.

1 <div id="contentColumn">

2 <div id="contentMenu">

3 <a href=".">Kezdőlap</a> &raquo; Akciók 4 </div>

5 <div id="contentTitle">

6 Akciók 7 </div>

8 <form action="" method="post">

9 Rendezés:

10 <select name="sorting"

onchange="submit()">

11 <option

value="book_title|ASC"<?=($_POST["sorting"]=="bo ok_title|ASC")?' selected="selected"':'';?>>Cím szerint (A - Z)</option>

12 <option

value="book_title|DESC"<?=($_POST["sorting"]=="b

ook_title|DESC")?'

selected="selected"':'';?>>Cím szerint (Z - A)</option>

13 <option

value="book_author|ASC"<?=($_POST["sorting"]=="b ook_author|ASC")?'

selected="selected"':'';?>>Szerző szerint (A - Z)</option>

14 <option

value="book_author|DESC"<?=($_POST["sorting"]=="

book_author|DESC")?'

selected="selected"':'';?>>Szerző szerint (Z - A)</option>

22 generateSpecialBookList($order);

23 ?>

24 </div>

25 </div>

A fenti kódból látható, hogy az akciós termékeket is van lehetőségünk kü-lönböző feltételek alapján rendezni, mint ahogy azt az előző fejezetben leírtuk.

Az is észrevehető, hogy itt is egy külön függvénnyel valósítjuk meg az akciós termékek listázását (22. sor). A rendezés alapesetben a könyv címe szerint, növekvő sorrendben történik (21. sor). A listázásért felelős függvény a function.php fájlban található generateSpecialBookList néven, melynek kódja itt látható:

1 function generateSpecialBookList($sort) { 2 $order = str_replace('|',' ',$sort);

3 $query = mysql_query("SELECT * FROM

".$GLOBALS["bookTable"]." WHERE book_special <>

'' ORDER BY ".$order);

11 print('<span class="bookTitle"><a href="?page=bookDetails&amp;id='.

$result->book_id.'">'.

$result->book_title.'</a></span>');

12 print('<span class="bookTitle2">'.

$result->book_author.'</span>');

13 print($result->book_subtitle);

14 print('<span class="bookPrice">');

15 if ($result->book_special) { 16 print('<del>'.number_format(

$result->book_special * (1 + ($result->book_tax / 100)),0,'',' ').' Ft</del> ');

17 print('<span

class="special">Akciós ár:

'.number_format($result->book_price * (1 + (

$result->book_tax / 100)),0,'',' ').' Ft</span>');

18 } else {

19

print(number_format($result->book_price * (1 + ($result->book_tax / 100)),0,'',' ').' Ft');

20 }

21 print('<button

onclick="window.location.href=\'?page=bookDetail s

&amp;id='.$result->book_id.'\'; return false;">Részletek</button>');

22 print('</p>');

23 print('</form>');

24 print('<div class="clear"></div>');

25 print('</li>');

26 }

27 print('</ul>');

28 } else {

29 print('<p>Nincsenek akciós termé-kek!</p>');

30 } 31 }

A 2. sorban látható, hogy a kapott paraméterrel vezérelhető a termékek rendezése. A | jel határolja el a mezőnevet a rendezés típusától. Alapértelme-zésben a book_title mező alapján, azaz a könyv címe szerint rendezi növek-vőbe a termékeket. Rendezés sorrendje lehet növekvő (ASC) vagy csökkenő (DESC). Ezt az ORDER BY mezőnév után kell kiadnunk. Alapértelmezésben növekvő a rendezés, így ebben az esetben nem kötelező kiírni.

Rendezés az akciós termékeknél

Ha már szó esett a rendezésről, akkor valósítsuk is meg a termékek olda-lán. Első körben az akciós termékeknél alkalmazzuk ezt a lehetőséget. Ehhez módosítsuk a specialPage.php fájlt.

Keressük meg a következő sort a kódban:

1 <div id="contentBox">

Majd illesszük be elé a következő programkódot:

1 <form action="" method="post"> szerint (A - Z)</option>

5 <option

value="book_title|DESC"<?=($_POST["sorting"]=="b ook_title|DESC")?'

selected="selected"':'';?>>Cím szerint (Z - A)</option>

6 <option

value="book_author|ASC"<?=($_POST["sorting"]=="b ook_author|ASC")?'

selected="selected"':'';?>>Szerző szerint (A - Z)</option>

7 <option

value="book_author|DESC"<?=($_POST["sorting"]=="

book_author|DESC")?'

selected="selected"':'';?>>Szerző szerint (Z - A)</option>

Ha megfigyeljük a kódot, akkor további mezőket is felvehetünk a rendezési listába.

Rendezés a keresési találatokban

Ha már elhelyeztük ezt a lehetőséget az akciós termékeknél akkor tegyük be a keresési találatokhoz is.

Módosítsuk a searchPage.php fájl tartalmát, az előzőekhez hasonlóan.

Keressük meg a következő sort a kódban:

1 <div id="contentBox">

Majd illesszük be elé az előző programkódot, amelyben a lista található a rendezésekről.

Rendezés a termékeknél

A termékek listáját se felejtsük ki. Itt is szükségünk van rendezni a kategó-rián belüli könyveket. Ehhez nincs is más dolgunk, mint módosítani a bookListPage.php fájt, úgy, mint ahogy az előző két alkalommal is tettük. Keres-sük meg a következő sort a kódban:

1 <div id="contentBox">

Majd illesszük be elé az előző programkódot, amelyben a lista található a rendezésekről.

8.3 ÖSSZEFOGLALÁS, KÉRDÉSEK

8.3.1 Összefoglalás

Ha jól megfigyeltük, a rendezést egyszer kellett csak megírni, és ugyanúgy felhasználható volt több oldalon is. A kereséssel pedig megkönnyítettük a vevők dolgát, mivel nem kell a kategóriákat végignézniük, hanem elég a könyv vala-melyik adatára rákeresni, és máris egy szűkebb terméklistát jelenítünk meg, ami könnyebben áttekinthető.

8.3.2 Önellenőrző kérdések

– Egy internetes könyváruháznál mely adatokat jelenítjük meg min-denképpen?

– Keresés megvalósításánál melyik mezőkre célszerű a keresést kiter-jeszteni?

– A termékek rendezésénél mely adatokat részesítjük előnyben?

 (Feladatok/Egyetlen állomány feltöltése) Feladat: Töltse fel az eddig elkészült programkódot! (Szelekciós funkciók)

9. ELEKTRONIKUS

In document Webprogramozás II. (Pldal 168-175)