|
(dropdown list, <select>, combo box)
В този урок ще покажем как може да се генерира динамично html код за падащо меню, като стойносттите се взимат от масив. Тази техника е особено полезна, когато предварително не ни е известно съдържанието на менюто. Например ако елементите се извличат от база данни по зададен от потребителя критерий. Започваме със създаване на страницата. На необходимото място в <body>…</body> създаваме форма: CODE
В началото на PHP файла (преди началото на HTML кода т.е. преди „<doctype …>”) слагаме PHP код в който дефенираме 2 (в случая статични) масива. Един с местонахождения и един с „как разбрахте за нас”: CODE
Стойностите на тези масиви ще използваме за създаване на два падащи списъка за избор. За целта създаваме PHP функция, която получава като параметри масив с елементите на менюто и име на html <select> елемента, който функцията ще генерира. Функцията можем да поставим в горния PHP таг, след масива $hear: CODE
Сега да се върнем към формата и на мастото на коментара да записшем следния код: CODE
И така – записваме таг <label…> директно като html код и след него прибавяме динамично генериран html от PHP функцията createDropdown (), като я извикваме 2 пътисъс съответните параметри. Този подход позволява една и съща фунция да генерира всички падащи менюта в страницата. В примера формата няма стойност за атрибута action. За реално използване. Трябва да зададете на action стойност - PHP скрипта, който да получи POST завката, както и да добавите submit бутон във формата. Също така, доколкото стринговете не са особено подходящи за идентификатори, можете да промените функцията така, че да работи с асоциативен масив, който да съдържа идентификатори – кодове (числа или буквени кодове) и асоциирани с тях текстове, като кодовете се присвояват на атрибута value, а текстовете – като текст на генерираните <option> елементи. Така в POST заявката ще се включат кодовете а не текстовете. Източник: coremediadesign.co.uk
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||









