At first I thought that such a function seemed difficult. I had made an encyclopedia before, which also involved the classification function, but it was not an infinite classification, but a simple implementation of a fixed three-level classification. I designed it myself at the time. , when I think about it, the implementation method is too crude. In fact, three-level classification is just a special case of infinite-level classification. After thinking about it for a while, I already had some ideas. I checked online and found that there are so many things like this, haha. In fact, the infinite drop-down list function is very simple, it is nothing more than using a recursive algorithm.
First of all, you need to design the database. You need to build a table to store classification information. At least 3 fields are needed. The first is the primary key (ID), the second is the parent classification ID (parentid), and the third is the classification. The name (classname). A possible effect is:
ID PARENTID CLASSNAME
1 0 First-level classification A
2 0 First-level classification B
3 1 Second-level classification A
4 1 Second-level classification B
Main idea: First look at the third and fourth rows. The value of the parent class ID (PARENTID) is 1, which means it belongs to a subclass of the class with id=1. However, the first and second rows are first-level classifications. There is no superior classification, so the value of the parent class ID (PARENTID) is 0, indicating the primary classification, and so on to achieve infinite classification. The final effect is:
├First-level classification A
├─┴Second-level classification A
├─┴Second-level classification B
├First-level classification B
Then there is the program, here As a description language, PHP can be easily changed to other languages because the principle is similar, it is just recursion.