Köhnə menyu php. PHP və MySQL-də çoxsəviyyəli menyu. Ziyarətçi bu səhifədə olarsa, menyudakı keçidi necə qeyri-aktiv etmək olar

PHP-də PHP skriptləri ilə idarə olunan saytın menyusu özünəməxsus xüsusiyyətlərə malikdir. Bu, təkcə mütləq deyil nisbi bağlantılar, baxmayaraq ki, bu yaxşı ola bilər, lakin, bir qayda olaraq, bölmələr və alt bölmələr olan yan panellərdən dinamik şəkildə yaradılan bağlantı blokları və saytın daxili səhifələrindən keçid blokları. Dinamik olaraq yaradılan menyu çox rahatdır, çünki onu saytın istənilən yerinə və ən əsası, lazımi zamanda daxil etmək olar. Yəni, müxtəlif bölmələrə və alt bölmələrə keçərkən, müxtəlif menyu bloklarını dinamik şəkildə genişləndirə bilərsiniz. Üstəlik, onlar yalnız məzmunda deyil, həm də forma və dizaynda fərqlənə bilər. Statik bir saytda belə fəndlər etmək də olduqca mümkündür, lakin bu, baha başa gələcək əlavə fayllarşablon və bir çox başqa fəndlər. PHP-də yazılmış bir sayt isə bunların heç birini tələb etmir. Şablon olduğu kimi qalacaq. Hər şey bir və ya bir neçəsi tərəfindən idarə olunacaq sadə php skriptlər.

Bunu yoxlamaq üçün dinamik olaraq menyunu, məsələn, birinci kateqoriyanı yaratmaq üçün PHP skripti yazmaq və onu əvvəllər yazılmış skript vasitəsilə bu kateqoriyanın menyusunu genişləndirməyə məcbur etmək kifayətdir. Qalan başlıqlar da oxşar şəkildə tərtib edilə bilər. Üstəlik, skriptin kodunun özü demək olar ki, dəyişməz qalacaq. Yalnız mətn faylı dəyişəcək, bu da keçidlərin adlarını və keçidlərin özlərini müəyyən edəcək. Belə bir skriptin kodu aşağıda verilmişdir.

// Menyu qurucusu
$menu = @fayl($rubric1_menu);
$sətirlər = say ($menyu);
üçün ($i = 0; $i< $lines; $i++)
{
list($menu_link,$menu_name,$menu_title)=partlatmaq("::", $menu[$i]);
if($page == rub1_part1 və $i == 0) ($refcolor = "style="color:#cc0000"";)
elseif($səhifə == rub1_part2 və $i == 1) ($refcolor = "style="color:#cc0000"";)
elseif($səhifə == rub1_part3 və $i == 2) ($refcolor = "style="color:#cc0000"";)
başqa ($refcolor = "";)
$rubrikası1.="

  • ".$menyu_adı."
  • ";
    }
    ?>

    Belə bir skriptin işləməsi üçün menyu bağlantılarının adlarının, bağlantıların özləri və başlıqlarının saxlanacağı mətn faylına ehtiyacınız var. Belə bir fayl yaratmaq çətin deyil, sadəcə Dreamweaver əsas menyusundan Fayl -> Yeni əmrini yerinə yetirin və yenisini yaradın. html sənədi, əvvəllər təsvir edildiyi kimi, yoxlayın və lazım olduqda yeni faylın kodlamasını UTF-8-ə dəyişdirin və sonra onu əvvəllər onun üçün yaradılmış məlumat qovluğunda rubric1.dat adı altında saxlayın. Bu faylın tam yolu D:/Mysitephp/data/rubric1.dat olacaq. Aşağıdakı faylın məzmunu keçidlərin özləri, adları və başlıqlarıdır (məsləhətlər). Bundan əlavə, bu skripti işə salmaq üçün funksiyadan istifadə edərək qoşulmalıdır daxil edin() main.php şablon mühərrikində.

    Rub1_hissə1::Bölmə 1::Bölmə 1 rubrikası 1::
    rub1_hissə2::2-ci bölmə::2-ci bölmə rubrikası 1::
    rub1_part3::3-cü bölmə::3-cü bölmə rubrikası 1::

    Bundan əlavə, siz həmçinin saytın tam ünvanını, səhifələrin qovluqlarına gedən yolları və saytın meta təsvirlərini, sayt menyu fayllarına gedən yolları və funksiyadan istifadə edərək onu birləşdirəcək parametrləri olan kiçik bir skript yaratmalısınız. daxil edin() main.php şablon mühərrikində. Bunu etmək üçün yenisini yaratmalısınız php faylı, və onu php qovluğunda settings.php kimi ad altında saxlayın. Faylın tam yolu D:/Mysitephp/php/settings.php olacaq və onun məzmunu aşağıda verilmişdir.

    html sənədləri olan # qovluq
    $doctemplates = "şablonlar";
    # skript kataloquna tam yol
    $turl="http://mysitephp.ru";
    # verilənlər bazası
    $rubric1_menu = "data/rubric1.dat";
    ?>

    Menyu yaratmaq üçün PHP skripti necə işləyir? Funksiyadan istifadə edərək əvvəlcə $menyu dəyişəninə daxil olun fayl() rubric1.dat mətn faylının məzmunu yerləşdirilir. Sonra funksiya saymaq() sətirlərin sayını hesablayır mətn faylı və funksiyaları siyahı()partlatmaq() menyunun özü bir döngədə genişlənir, burada xətləri bir-birinə yapışdırmaq üsulu (əməliyyat nöqtəsi . ) onların adları və başlıqları ilə keçid cərgələri yaradılır, sonra onlar $rubric1 dəyişəninə yerləşdirilir. Sonrakı şablon mühərrik skriptidir, burada menyu skripti funksiya ilə əlaqələndirilir daxil edin(), $rubric1 dəyişəninin məzmununu əvvəllər təsvir edilmiş funksiyadan istifadə edərək saytda istədiyiniz yerə köçürür repl().

    Belə bir menyu hələ işləməyəcək, çünki o, yalnız bütün lazımi atributları olan bağlantıları ehtiva edir, lakin bu bağlantılara keçidi və bu bağlantılara uyğun gələn sayt səhifələrinin açılmasını təmin edəcək heç bir skript yoxdur. Bu PHP skripti ilə növbəti dəfə məşğul olacağıq.

    Sonra, layihəni menyu yaratma skripti ilə yeniləyə bilərsiniz. Sağ tərəfdəki paneldə pulsuz abunəliyi qeydiyyatdan keçirib aktivləşdirdikdən sonra açılacaq səhifədə yenilənmiş layihəni də yükləyə bilərsiniz. Səhifənin ünvanı yadda saxlanmalıdır. Məhz bu səhifədə gələcəkdə layihə yeniləmələrini, müxtəlif faydalı skriptləri, proqramları, dərsləri və sxemlərin dizaynı, proqramlaşdırma və veb saytın qurulması üzrə video dərsləri yükləmək üçün keçidlər görünəcək. yeni başlayanlar üçün.

    Yeni skriptlərlə yeniləndi php layihəsi sayt indi yuxarıda təsvir edilən hərəkətlər nəticəsində baş verənlərlə müqayisə edilə bilər. Sonra, uyğunsuzluqları aradan qaldırmaq üçün layihəni yüklənmiş layihə ilə tamamilə əvəz etmək, əməliyyatı yerinə yetirmək, Denwer serverini işə salmaq, brauzer pəncərəsində mysitephp.ru yazın və ondan nə çıxdığını görmək faydalı olardı. Birinci bölmənin menyusu aşağıdakı şəkildə göstərildiyi kimi şablonun yuxarı sol hissəsində genişlənməlidir.

    Gedin və sevimli sosial şəbəkənizdə əriyin

    Çünki o, menu.php modulunun məzmununu ifşa edir. Aşağıda təqdim olunacaq öz inkişafı notepadda sıfırdan yazılmış PHP-də menyu.

    Bu kod xüsusi mühərrikləri olan dinamik saytlar üçün xüsusilə faydalı olacaq. Mən kiçik fərqləri olan iki kod variantını təklif edəcəyəm (fərqlər daha sonra izah ediləcək).

    Başlamaq üçün bu menyunun uyğun olduğu saytın təxmini strukturunu verəcəyəm. Saytın strukturu belə görünməlidir (klassik görünüş):

    /index.html /razdel_1/ /razdel_1/articles_1.html /razdel_1/articles_2.html ... /razdel_2/ /razdel_2/articles_1.html /razdel_2/articles_2.html ... ... ... /razdel_N/articles_2 .html

    Saytda həmçinin bölmələr üçün alt bölmələr ola bilər:

    /razdel_1/podzaderl_1/ /razdel_1/podzaderl_1/articles_1.html /razdel_1/podzaderl_1/articles_2.html ... /razdel_1/podzaderl_2/articles_1.html /razdel_1/podzaderl_2/articles_2.html

    Bu struktur həm də kiçik fərqlərlə menyumuz üçün işləyəcək.

    php-də menyu üçün ayrıca fayl yaratmağı təklif edirəm. Məsələn, menu.php belə bir fayl üçün əla ad olardı. Menyunu həyata keçirmək üçün onu dərhal az və ya çox gözəl etmək üçün CSS-də menyu üslubu da təqdim olunur. Təbii ki, bu üslub yalnız istinad üçün verilir, çünki saytların dizaynları çox fərqlidir.

    CSS-də menyu üslubu üçün kod:

    .menu ( hündürlük: 42px; doldurma: 0 0 0 16px; fon:url(şəkillər/spacer.png) təkrar; ) .menu li (ekran:blok; float:sol; ) .menu li.active ( fon: #000011 ; ) .menyu a (rəng:#FFF; displey:blok; sətir hündürlüyü:42px; mətn dekorasiyası:yox; padding:0 14px; ) .menyu a:hover ( fon:url(şəkillər/spacer.png) təkrar )

    İndi isə PHP-də bir az sadələşdirilmiş menyunun həyata keçirilməsi üçün birinci varianta baxaq.

    PHP-də menyu kodunun ilk versiyası

    \n"; üçün ($i=0;$i ": "
  • "; əks-səda" ".$array_menu[$i]["name"]."
  • \n"; ) echo ""; ?>

    Menyu iki hissəyə bölünə bilər. Birincisi, bölmələrə keçidləri olan bölmələrimizin adlarını ehtiva edən $array_menu məlumat massivindən ibarətdir. Bu məlumatları verilənlər bazasına daxil etmək imkanı var mySQL məlumatları, lakin burada xüsusi bir məqam yoxdur, çünki nümunə çox kiçikdir, buna görə də bu iş sürətinə təsir etməyəcəkdir.

    İkinci hissə for loop vasitəsilə menyunun çıxışını ehtiva edir. Dövr sayt ünvanını $array_menu massivindəki ünvanla müqayisə edir. Uyğunluq varsa, o zaman xüsusi aktiv siniflə növbəti menyu bölməsini göstəririk:

  • , əks halda sadəcə
  • . Bu, istifadəçinin yerləşdiyi menyu hissəsini bəzi rənglərlə vurğulamağa imkan verir. Məncə, bu, istənilən sayt üçün lazımlı bir şeydir ki, istifadəçi hansı bölmədə olduğunu başa düşə bilsin.

    Menyu saytda göründükdə massivdəki sıra qorunacaq. Yəni, massiv menyunun göstərilməli olduğu ardıcıllıqla doldurulmalıdır.

    Qeyd:
    Bölmə başlıqlarının URL-ləri (ünvanları) belə görünürsə:
    /bölmə_1
    ya da bu kimi
    /razdel_1/nazvanie_razdela.html
    onda siz array_menu-da dəqiq uyğunluq yazmalısınız:
    $array_menu[$i]["url"]="/razdel_1"
    və ya ikinci hal üçün:
    $array_menu[$i]["url"]="/razdel_1/nazvanie_razdela.html";

    Birinci menyu seçimi necə işləyir?
    O, yalnız bölmənin başlıq ünvanında olsanız, menyunu vurğulayır. Məsələn, səhifənin ünvanı /razdel_1/articles_1.html olarsa, o zaman menyu heç bir şəkildə vurğulanmayacaq.

    Kodun ikinci versiyası birincinin dəyişdirilmiş versiyasıdır və hətta bölmələrdə yerləşən məqalələrdə menyuları vurğulamaq imkanı verir.

    PHP-də menyu kodunun ikinci versiyası

    "; üçün ($i=0;$i ": "
  • "; echo "".$array_menu[$i]["title"]."
  • "; ) else ( echo ($URL) == ($array_menu[$i]["url"]) ? "
  • ": "
  • "; echo "".$array_menu[$i]["title"]."
  • "; ) ) əks-səda ""; ?>

    İndi baxacağımız şey budur. Beləliklə, vəzifə açılan siyahı şəklində şaquli menyu yaratmaqdır.

    Bunu PHP-də necə həyata keçirmək olar? Çox sadə! Məsələn, bir faylımız var index.php, açılan siyahıda seçilmiş bölmədən asılı olaraq səhifədə müvafiq məzmunu göstərməlidir. Bu aşağıdakı kimi həyata keçirilir:

    1. Çıxış üçün lazım olan məzmunu ehtiva edən .html formatında fayllar yaradırıq.

    2. Biz index.php skriptində müvafiq məlumatı göstərmək üçün lazımi şərait yaradırıq (yazırıq).

    3. Biz yaradılmış skripti icra olunan skriptin təhlükəsizliyi baxımından nəzərdən keçiririk.

    Deyəsən, nəzəriyyəni bitirmişik, keçək təcrübəyə. Birincisi, biz .html formatında statik səhifələr yaradırıq, bu səhifələrin tərkibində olacaq zəruri məlumatlar. Orada istədiyinizi yaza bilərsiniz :) Nəticədə, ən azı iki first.html və second.html faylı əldə etməliyik ki, əsas alqoritmi başa düşdükdən sonra onlardan istədiyimiz qədər çoxunu yarada bilərik. kodun necə işləyir.

    Faylda açılan siyahı göstərmək üçün index.php html forması yaradın və aşağıya yazın PHP skripti aşağıdakı məzmunla:



    Menyu PHP


    PHP-də açılan menyu












    if (isset ($_GET ["harada" ]))
    {
    əgər ($_GET ["harada" ]==1 )
    $fayl = "first.html" ;
    əgər ($_GET ["harada" ]==2 )
    $fayl = "ikinci.html" ;
    daxil edin($fayl);
    }
    ?>


    İndi açılan menyunun kodu hazırdır və ən maraqlısı odur ki, o, normal fəaliyyət göstərəcək, lakin təhlükəsizlik baxımından həssasdır.

    Bu skriptin zəifliyi dəyişənin olmasıdır $fayl işə salınmamış qalır və bu halda avtomatik yaradılmış dəyişənin qiyməti birbaşa funksiyaya keçir daxildir, və o, öz növbəsində, uğurla birləşdirir (dəyişən) və ekranda göstərir. Və bu, yalnız .htaccess konfiqurasiya faylı olmaya bilər. Bu skripti sındırmaq üçün harada parametrinə kodda nəzərdə tutulmayan dəyəri ötürmək kifayətdir, məsələn, 3. Və bu dəyər skript tərəfindən təmin edilmədiyi üçün o, sadəcə dəyişəndir. $fayl inisializasiyaya məruz qalmayacaq. Buna görə də, URL sətri vasitəsilə ona ixtiyari qiymət verilə bilər.

    http://localhost/index.php?where=3&file=.htaccess

    Amma bu belədir, mövzudan bir qədər kənara çıxmaq. 😀

    Bu problemin həlli olduqca sadədir, dəyişkəndir $fayl sadəcə istifadə etməzdən əvvəl işə salınmalıdır, yəni standart dəyər təyin edilməlidir.

    Burada, əgər harada parametri skriptə ötürülürsə, onda dəyişən düzgün işə salınacaq, əks halda sadəcə boş qalacaq. PHP-də [təhlükəsiz] açılan menyu belə çıxdı.

    P.S. Ssenarilər yaratarkən, bütün mümkün hücum vektorlarını nəzərə almaq və müvafiq olaraq istisna etmək lazımdır. Bu, təhlükəsizlik qaydalarına cavab verən və müştəri tərəfindən tələb olunan layihənin yaradılmasının yeganə yoludur. Yenidən görüşənədək!

    Əgər veb-sayt menyusunu necə yaratmaqla bağlı sualın cavabı ilə maraqlanırsınızsa, deməli düzgün ünvana gəldiniz.

    Biz PHP-də xüsusi olaraq proqramlaşdırma dummies, həmçinin hələ də tankda olanlar üçün yazılmış dinamik menyu yaratmağa baxacağıq.

    Dərs 3. Veb saytın dinamiki üçün php-də menyunun yaradılması - buteynlər üçün

    Gəlin veb saytımızın gələcək tərtibatını yaradaq. Bunu etmək üçün Photoshop-da super gözəl veb sayt çəkəcəyik və onu parçalara ayıracağıq. Təsəvvür edək ki, başlıq, loqo, menyu və altbilgi bu nümunədəki kimi sözlə yazılmayıb, lakin bunlar saytın nəfis və rəngarəng tərtibatlı elementləridir.

    Məsələn, üç səhifə yaradaq və onları Bölmə 1, Bölmə 2, Bölmə 3 adlandıraq

    Bu mətn müxtəlif səhifələr üçün fərqli olacaq, lakin biz bununla narahat olmayacaq və onu bütün səhifələrdə olduğu kimi tərk edəcəyik.

    PHP-də veb sayt yaratmağa başlayaq.

    1. Başlıq, loqo, menyu, altbilgi bloklarını php və ya html uzantılı ayrı-ayrı fayllara seçin

    başlıq.html

    logo.html

    menyu.html

    footer.html

    Bu mətnlə bir fayl əlavə edək ki, onu bütün səhifələrdə görə bilək. Gəlin ona zəng edək mətn.html

    Qeyd. Bundan sonra əlavə qeydləri birbaşa faylda saxlayacağam. mətn.html

    2. Veb saytımız üçün PHP-də şablon yaradaq.

    Bunu etmək üçün sadə bir şey edəcəyik - real faylı qeyd edin, lakin ilə php uzantısı və bütün mətn məzmununu silin. Peşəkar olmaya bilər, amma başa düşüləndir, amma sonra hər şeyi çətinləşdirəcəyik. İndi əsas şey layout prinsipini başa düşməkdir.

    3. İndi şablon.html faylına ehtiyacımız yoxdur.

    Onun sayəsində saytımızın necə görünəcəyi ilə bağlı bir fikrimiz var.

    4. Şablonumuz template.php faylıdır

    İndi daxil etmək əmrindən istifadə edərək bütün sayt elementlərini ona daxil edəcəyik.

    5. Əvvəlcə edəcəyimiz kimi üç səhifə yaradaq.

    Bölmə 1, zəng edək 1.php

    Bölmə 2, zəng edək 2.php

    Bölmə 3, zəng edək 3.php

    Bunun üçün ən sadə əmrdən istifadə edə bilərsiniz kimi saxla...

    Kiçiklər üçün izah edim: faylı açın template.php, sonra basın kimi saxla... və adı altında qeyd edin 1.php, proseduru təkrarlayın və sayt səhifələrini ardıcıl olaraq saxlayın 2.php, 3.php

    Eyni dizaynla 3 səhifə ilə bitirdik. Sadəcə fayl yerinə onu yapışdırın mətn.html başqa, müxtəlif şəkillər və ya hər hansı bir əlavə html kodları, skriptlər və hər səhifənin məzmunu unikal olacaq.

    Diqqət!

    Əgər fayl yaradılmayıbsa index.phpəsas səhifə üçün, sonra brauzerdə, saytın ünvanını yazmaqla, saytın özünü deyil, yalnız kataloq strukturunu (qovluqların siyahısı) görəcəyik.

    Denverə baxıb özünüz görə bilərsiniz. Vəziyyəti düzəldək - bir fayl yaradın index.php və uzatmadan zəng edək Ev. Eyni zamanda, bir fayl yaradaq text-home.html və əmrdən istifadə etməklə daxildir onu saytın yeni yaradılmış əsas səhifəsinə daxil edin.

    6. php-də veb-sayta necə baxmaq olar?

    Sadəcə nə baş verdiyini görməyəcəyik. Bu artıq html uzantılı şablon deyil.

    Amma problem də deyil. Bizə özümüz lazımdır, yəni. kompüterinizdə yerli server. Bunun üçün biz Denver-i quraşdıracağıq və internetə getmədən brauzerdə işimizin nəticəsinə baxacağıq.

    İndi sifariş budur. Saytın ünvanını yazdım və yeni yaradılan hər şeyi gördüm normal forma dizaynla.

    İndi saytın PHP menyusunu götürək.

    1. menu.html faylını açın və 1, 2 və 3-cü bölmələri saytdakı keçidlərə çevirin. PHP-də keçidlər müxtəlif üsullarla yaradılır.

    Bizim vəzifəmiz PHP-də yaradılmış saytı necə hiss etməyi öyrənməkdir. Buna görə də, biz adi statik saytda olduğu kimi bağlantılar edəcəyik Bölmə 1 və s.

    Macromedia Dreamweaver-da bu əlaqə yaratma prosesini çox sevirəm. Biçmək üçün vaxtınız var OK və qəhvə iç.

    2. Ziyarətçi bu səhifədə olarsa, menyudakı keçidi necə qeyri-aktiv etmək olar.

    Ziyarətçinin hansı səhifədə olduğunu bilərək saytı gəzməsi daha rahat olacaq.

    Əgər bütün addımları ciddi şəkildə nöqtə-nöqteyi-nəzərdən yerinə yetirmisinizsə, menyudakı bütün keçidlərin həmişə aktiv olduğunu görəcəksiniz. Bunu necə düzəltmək olar?

    Əvvəlcə bunun nə olduğunun tərifini xatırlayaq Şərti ifadələr

    - bu, şərtlərdən asılı olaraq bəzi hərəkətlərin yerinə yetirildiyi və ya edilmədiyi zamandır.

    Gəlin aşağıdakıları edək:

    əgər ($master == "Əsas")// bu şərtdir. Əgər icra olunursa, o zaman menyunun bu yerində echo əmrindən istifadə edərək "Ev" yazısını göstərən adi HTML etiketləri daxil edilir.

    əks-səda "

    Ev

    ";

    başqa// “əks halda” deməkdir - şərt yerinə yetirilmədikdə nə baş verəcək. Bu halda, şərt yerinə yetirilmədikdə, "Ev" yazısı əsas səhifəyə aparan bir keçid olacaqdır.

    əks-səda "

    Ev

    ";

    • Şərtlə gəldik, amma belə dəyişəni yoxlayınbunu soruşmaq lazımdır.

    Bunun üçün bütün səhifələrdə aşağıdakı kod bloklarını yerləşdirəcəyik:

    $master = "Əsas";

    $master = "Bölmə 1";

    $master = "Bölmə 2";

    $master = "Bölmə 3";

    Gördüyünüz kimi, hər səhifənin öz kodu var.

    Beləliklə, PHP menyusu yaratmaq üçün praktik addımlarımız aşağıdakı kimi olacaq:

    1) Faylı açın index.php

    və kodu yapışdırın

    $master = "Əsas";

    sayt menyusunun özünü göstərən kodu daxil etdiyiniz yerə "menu.html" daxil edin;
    ?>

    2) Faylı açın menyu.html və əsas səhifəyə sadə html linki əvəzinə şərti olan kodu daxil edin.

    Brauzerə baxırıq və heyranıq! Əsas səhifəyə keçsək, link artıq aktiv deyil!

    3) 1 və 2-ci bəndləri səhifələrlə təkrarlayın 1.php, 2.php, 3.php

    Təkrar 1:

    1) 1.php faylını açın və göstərilən dəyişənlə menyu blokunu göstərən kodun əvvəlinə daxil edin

    $master = "Bölmə 1";

    2) menu.html faylını açın və sadə keçid əvəzinə şərti olan kodu daxil edin Bölmə 1, aşağıdakı dəyişikliklərin edilməsi:

    əgər ($master == "Bölmə 1")// bu şərtdir. Əgər icra olunursa, o zaman menyunun bu yerində echo əmrindən istifadə edərək "Bölmə 1" yazısını göstərən adi HTML etiketləri daxil edilir.

    əks-səda "

    Bölmə 1

    ";

    başqa// “əks halda” deməkdir - şərt yerinə yetirilmədikdə nə baş verəcək. Bu halda, şərt yerinə yetirilmədikdə, "Bölmə 1" yazısı əsas səhifəyə aparan bir keçid olacaqdır.

    əks-səda "

    Bölmə 1

    ";

    Möcüzə yenidən baş verdi! İndi səhifədə olsaq Bölmə 1, menyudakı link aktiv deyil.

    Təkrar öyrənməyin anasıdır! Və ya tankda olanlar üçün! Yenə

    Təkrar 2

    1) Açıq fayl 2.php və kodu yapışdırın.

    $master = "Bölmə 2";

    2) Menyu.html faylını yenidən açın və kodu şərtlə yapışdırın

    əgər ($master == "Bölmə 2")// bu şərtdir. Əgər icra olunursa, o zaman menyunun bu yerində echo əmrindən istifadə edərək "Bölmə 2" yazısını əks etdirən adi HTML etiketləri daxil edilir.

    əks-səda "

    Bölmə 2

    ";

    başqa// “əks halda” deməkdir - şərt yerinə yetirilmədikdə nə baş verəcək. Bu halda, şərt yerinə yetirilmədikdə, "Bölmə 2" yazısı əsas səhifəyə aparan bir keçid olacaqdır.

    əks-səda "

    Bölmə 2

    ";

    Təkrar 3

    1) Açılış fayl 3.php və dəyişəni təyin edin.

    $master = "Bölmə 3";

    2) menu.html faylına keçid yerinə şərti olan kodu daxil edirik Bölmə 3, dəyişikliklər bunlardır:

    əgər ($master == "Bölmə 3")// bu şərtdir. Əgər icra olunubsa, o zaman menyunun bu yerində echo əmrindən istifadə edərək "Bölmə 3" yazısını əks etdirən adi HTML etiketləri daxil edilir.

    əks-səda "

    Bölmə 3

    ";

    başqa// “əks halda” deməkdir - şərt yerinə yetirilmədikdə nə baş verəcək. Bu halda, şərt yerinə yetirilmədikdə, "Bölmə 3" yazısı əsas səhifəyə aparan bir keçid olacaqdır.

    əks-səda "

    Bölmə 3

    ";

    Alt xətt: bu tip menyudakı keçidlər əvəzinə

    Ev


    Bölmə 1

    Bölmə 2


    Bölmə 3

    php haqqında bu dərs sayt ziyarətçilərinin çoxsaylı müraciətlərinə cavab olaraq yazılmışdır və php-də sayt üçün dinamik menyu yaratmağı öyrənmək üçün praktiki bələdçidir.

    Növbəti vebmasterin fırıldaq vərəqi sizə PHP-də hər bir səhifə üçün unikal başlıqlar, təsvirlər və açar sözlər yaratmağı izah edəcək.

    Arxivi bütün sayt şablonu və php menyu faylları ilə yükləyə bilərsiniz. Proqramlaşdırmaya yeni başlayanlar üçün tövsiyə olunur.

    Əgər PHP dilini ciddi şəkildə öyrənməyə hazırsınızsa, Popovdan daha yaxşı video kurs tapmaq çətindir. Onun böyük təcrübəsi və yaxşı üslubu var.

    ]]> ]]>

    Bu yazıda necə yarada biləcəyinizi göstərəcəyəm PHP və MySQL-də çoxsəviyyəli menyu. Əlbəttə ki, onu yaratmaq üçün bir çox variant tapa bilərsiniz, lakin bu mövzuda suallarınızın sayına görə bir nümunə lazımdır. Və bu məqalədə verəcəyəm. Dərhal qeyd edim ki, bu məqalə yalnız bilənlər üçün məna kəsb edir PHP və necə işləməyi bilir MySQL. Qalan hər kəs əvvəlcə bunu keçməli və ya bəzi kitablar oxumalıdır PHP və MySQL.

    Əvvəlcə verilənlər bazasında aşağıdakı sahələrlə cədvəl yaradaq:

    • id- unikal identifikator.
    • başlıq- menyuda lövbər bağlantıları.
    • keçid- menyu elementinin aparacağı ünvan.
    • valideyn_id- valideyn şəxsiyyət vəsiqəsi. Əgər əsas element yoxdursa, o zaman NULL olacaq (və ya 0 da qoya bilərsiniz).

    Masanı sıraladıq, indi vaxtdır PHP kodu. Tam PHP kodu aşağıda verilmişdir:

    $mysqli = yeni mysqli("localhost", "root", "", "db"); // Verilənlər bazasına qoşulun
    $result_set = $mysqli->query("SEÇ * FROM `menyu`"); // Menyu ilə cədvəldən bütün qeydləri seçin
    $elementlər = massiv(); // Menyu elementləri üçün massiv
    while (($row = $result_set->fetch_assoc()) != false) $items[$row["id"]] = $row; // Massivi verilənlər bazasından nümunə ilə doldurun
    $uşaqlar = massiv(); // Uşaq elementləri valideynlərinə uyğunlaşdırmaq üçün massiv
    foreach ($item kimi $element) (
    if ($item["parent_id"]) $childrens[$item["id"]] = $item["parent_id"]; // Massivi doldurun
    }
    printItem funksiyası($item, $element, $uşaqlar) (
    /* Menyu elementini göstərin */
    əks-səda "

  • ";
    echo "".$item["title"]."";
    $ul = yalan; // Uşaqlar göstərilibmi?
    isə (doğru) (
    /* Bütün uşaqları axtardığımız sonsuz döngə */
    $key = array_search($item["id"], $uşaqlar); // Uşaq element axtarırıq
    əgər (!$açar) (
    /* Uşaq tapılmadı */
    əgər ($ul) əks-səda ""; // Əgər uşaq elementlər göstərilibsə, siyahını bağlayın
    fasilə; // Döngədən çıxın
    }
    unset($childrens[$key]); // Tapılmış elementi silin (yenidən görünməməsi üçün)
    əgər (!$ul) (
    əks-səda "
      "; // Hələ heç bir alt element yoxdursa, daxili siyahıya başlayın
      $ul = doğru; // Bayrağı təyin edin
      }
      echo printItem($itemlər[$key], $elementlər, $uşaqlar); // Bütün uşaq elementləri rekursiv şəkildə göstərin
      }
      əks-səda "";
      }
      ?>

      Bu kod tamamilə işləyir, lakin başa düşməlisiniz ki, heç kim bu şəkildə yazmır (xüsusilə, çıxış vasitəsilə əks-səda HTML teqləri). Və sizin vəzifəniz bu koddan alqoritmi götürməkdir, kodun özündən deyil. Və sonra bu alqoritmi mühərrikinizə qoşun. Mən çıxış kodunu diqqətlə şərh etməyə çalışdım PHP və MySQL-də çoxsəviyyəli menyu, lakin, əlbəttə, ən şəffaf deyil və kifayət qədər yaxşı ilkin bilik tələb edir. Əgər hələ də yaxşı bilmirsinizsə PHP və MySQL, onda əvvəlcə bunu keçməyi şiddətlə tövsiyə edirəm

      Baxış