PHP jQuery uyumsuz treeview gerçekleştirmek için?

3 Cevap php

PHP bir zaman uyumsuz treeview entegre etmek istiyorum. Şimdi ben bir source php PHP ile dosya oluşturmak için nasıl bilmek istiyorum.

Şimdi benim veritabanı yapısı şu şekildedir:

Create table School(
id int(10) NOT NULL AUTO_INCREMENT, 
name varchar(50), 
primary key(id)
);
Create table Class(
id int(10) NOT NULL AUTO_INCREMENT,
name varchar(50), 
school_id int(10), 
primary key(id), 
foreign key(school_id) reference School(id) on delete cascade
);
Student(
id int(10) NOT NULL AUTO_INCREMENT, 
name varchar(50), 
class_id int(10),
primary key(id), 
foreign key(class_id) reference Class(id) on delete cascade
);



School -> Class -> Student

Şimdi, ben treeview gerçekleştirmek istiyorum. Eğer uygulama herhangi bir fikir var mı?

Çok teşekkürler.

Ek soru: i treeview bitirdiğinizde. I ağaç öğeleri tıklarsanız, o tıklayarak bir sonuç tablosu üretecektir. Bunu nasıl biliyor musunuz?

Ancak, öncelikle ben treeview bitirmek gerekir.

3 Cevap

Yani temelde (sahte kod) gerekir:

$tree = array();
/**
 * the following line essentially executes the Query:
 * SELECT * from schools;
 * and returns all the rows in an array like 
 * $schools = Array(0=>array('id'=>1, 'name' => 'name'))
 */
$schools = $db->schools()->selectAll();

foreach($schools as $school)
{
   $schoolArr = array('text' => $school['name']);

   /**
    * Similar to the calls to school above except the query would be:
    * SELECT * from class where class.school_id = $school['id']
    * $school['id'] is the pk from the particular school record
    */
   $classes = $db->classes()->select("school_id = ?", $school['id']);
   $classesArr = array();
   foreach($classes as $class)
   {
      $classArr = array('text' => $class['name']);
      /**
       * Similar to the calls to school above except the query would be:
       * SELECT * from student where student.class_id = $class['id']
       * $class['id'] is the pk from the particular class record
       */
      $students = $db->students()->select('class_id = ?', $class['id']);
      $studentsArr = array();
      foreach($students as $student)
      {
          $studentsArr[] = array('text' => $student['name']);
      }

      $classArr['children'] = $studentsArr;
      $classesArr[] = $classArr;
   }

   $schoolArr['children'] = $classesArr;
   $tree[] = $schoolArr;
}

$jsTreeString = json_encode($tree);

Her döngü geçmesi gibi Şimdi tabii ki sizin diğer ağaç özellikleri Atama gerekir. sen yapmış hepsi sadece dizi json_encode ve echo o zaman ben olması gereken yerde. En azından şu id bunu nasıl. Muhtemelen bazı katılır ama ben bütün bu içine almak istemiyordu kullanarak tek bir sorgu olmadan bunu yapabilirsiniz, ama unutmayın - kesinlikle wann keşfetmek youll bu performans her bir konusu ise olsa.

Bu ağaç jQuery ile yapılabilir isterseniz ben this plugin kullanarak öneririm. Sen sadece bir JS işlevi çalıştırmak gerekiyor ve bu iş olacak. Ve tüm PHP parçası yapmak zorunda db den veri almak ve jQuery eklentisi ağaç haline dönüştürmek bir HTML oluşturmak olduğunu.

Bu gibi article/example code ağaç görünümü uygulanmasında sizin için ilgi çekici olabilir görünüyor.