Учитывая следующий список (UL), как его можно сериализовать и отправить в базу данных - PullRequest
0 голосов
/ 20 мая 2010

У меня есть следующая структура, которая создается с вложенной сортируемой:

<UL id="container">
    <LI id="main1">
        <input type="checkbox" />
        Lorem ipsum dolor sit amet, consectetur 
        <UL>
            <LI id="child2">
                <input type="checkbox" />
                In hac habitasse platea dictumst. 
                <UL></UL>
            </LI>
        </UL>
    </LI>
    <LI id="main3">
        <input type="checkbox" />
        In hac habitasse platea dictumst. 
        <UL></UL>
    </LI>
    <LI id="main4">
        <input type="checkbox" />
        In hac habitasse platea dictumst. 
        <UL></UL>
    </LI>
    <LI id="main5">
        <input type="checkbox" />
        In hac habitasse platea dictumst. 
        <UL></UL>
    </LI>
</UL>

Я застрял в том, как отправить это обратно в базу данных. Я предполагаю, что он должен быть сериализован, это тоже звучит правильно? Я открыт для предложений о том, как наилучшим образом хранить порядок в БД таким образом, чтобы каждый элемент списка был записан.

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

Спасибо

B

Ответы [ 2 ]

0 голосов
/ 20 мая 2010

Если вопрос буквально "как я могу отобразить этот список в будущем?" (т. е. точно такой же HTML), я бы предложил механизм шаблонов (выбор будет зависеть от вашего языка на стороне сервера).
Теперь, если вопрос, "как я могу получить значения флажков в соответствующие поля базы данных?" тогда вы, вероятно, захотите использовать синтаксис селектора jquery :checkbox css, чтобы получить все флажки и затем получить их значения. Или вы можете бросить теги формы вокруг всего этого и сделать кучу обработки на стороне сервера (не очень).

РЕДАКТИРОВАТЬ: После просмотра ваших комментариев на ответ Джейсона, мне приходит в голову, что вы можете выбрать все флажки и все <code><ul> из определенного <code><ul> . Очевидно, что вам нужно сделать это рекурсивно, но это должно дать вам нечто (массив какого-то рода), из которого вы можете воссоздать дерево.

0 голосов
/ 20 мая 2010

Если вы оберните свои списки в элемент form, а затем присвоите всем своим атрибутам флажки name, вы можете использовать метод jQuery $.serialize:

$.post('/url/to/send/', $('#myForm').serialize(), function(){//callback});
...