2013-04-24 2 views
1

Я ценю, что вы тратите время на рассмотрение моей проблемы. Я создаю интерфейс, который позволяет пользователю по существу составлять список категорий с использованием тегов UL и LI. Затем я храню эту информацию в базе данных MySQL через PHP, поэтому ее затем можно получить и сохранить форматирование. Я разработал часть PHP, а также вытащил дерево из базы данных и форматировал его. Часть, с которой у меня возникают проблемы, заключается в сохранении списка с помощью отправки формы и передачи его на PHP таким образом, чтобы он мог перебирать все данные и знать отношения между родителями и дочерними элементами.Итерация по вложенным спискам при отслеживании отношений родителя/ребенка

Пример списка может выглядеть следующим образом:

<ul> 
<li>FAQ 
    <ul> 
     <li>Installing SynergiesMOD</li> 
     <li>Updating SynergiesMOD</li> 
     <li>Mod Not Working</li> 
    </ul> 
</li> 
<li>Characters 
    <ul> 
     <li>Necromancer 
      <ul> 
       <li>Moves</li> 
       <li>Guides</li> 
      </ul> 
     </li> 
     <li>Warlock 
      <ul> 
       <li>Moves</li> 
       <li>Guides</li> 
      </ul> 
     </li> 
    </ul> 
</li> 
</ul> 

Этот список полностью редактируемые, так что любой конкретный контент можно перемещать, удалять, или новые категории добавлены до его представления в код PHP быть анализируется и сохраняется в базе данных. Я ломаю голову и не могу придумать способ прокрутки категорий, сохраняя при этом семейные отношения при передаче данных на PHP. Если у кого-либо из вас есть какие-либо идеи или предложения, я был бы признателен за помощь.

ответ

1

Вы не совсем описали, как вы собираетесь редактировать каждый элемент в списке. Я полагаю, что сделал бы это, имея гиперссылки на каждый элемент, который будет содержать идентификаторы каждого элемента, соединенные символами подчеркивания, например.

1 FAQ 
2 Characters 

1_1 InstallingSynergiesMOD 
1_2 UpdatingSynergiesMOD 
1_3 Mod Not Working 
2_1 Necromancer 
2_2 Warlock 

2_1_1 Moves 
2_1_2 Guides 

2_2_1 Moves 
2_2_2 Guides 

Я предполагаю, что каждый элемент в иерархии имеет связанный идентификатор.

Когда вы нажимаете на гиперссылку, вы можете отобразить одну и ту же иерархию, но с элементом списка, замененным полем INPUT с помощью NAME = "x_y". Если нажать кнопку Ok (или что-то еще), это приведет к тому, что FORM будет отправлено с данными для поля. Вы передаете имя поля для получения идентификаторов, а затем обновляете базу данных с новым значением. Наконец, вы распечатываете новый список.

Конечно, вы можете сделать то же самое с использованием JSON/XML XMLHttpRequest вместо использования FORM.

+0

Прошу прощения. Весь интерфейс выполняется через jQuery, позволяя перетаскивать и сортировать элементы списка, а также удалять или добавлять новые категории с помощью кнопки, которая добавит новый LI в список. –

+0

Независимо от того, что я показывал, что вы показываете иерархию, включая идентификатор от вершины иерархии до нижней. –

+0

Но мне действительно даже нужно попасть в ID? Я могу использовать jQuery, чтобы проверить, есть ли у LI дочерние элементы, а затем использовать $ .each для их прокрутки. Я не уверен в том, как форматировать информацию, когда я прохожу через нее структурированным способом, который я могу использовать в PHP, чтобы знать отношения родительский/дочерний при хранении в базе данных. –

0

Каждый li должен иметь nodeId (возможно, id из li), а затем вам нужно будет вычислить parentNodeId в JavaScript, ссылки на его родителей, чтобы поддерживать иерархические отношения

+0

Это одна мысль, которая возникла у меня, но как сохранить эту информацию и передать ее на PHP? –

Смежные вопросы