Javascript 使用数组将动态添加的li和ul元素保存到数据库

Javascript 使用数组将动态添加的li和ul元素保存到数据库,javascript,php,jquery,Javascript,Php,Jquery,我正在尝试构建一个应用程序的用户界面,用户可以在单击“添加问题”时添加ul和li元素,我成功地开发了前端部分,这里有一个预览: 但问题是,当将数据保存到数据库时,这太让我头疼了,有没有办法将数据保存到一个数组中,这样我就可以用php显示它们,欢迎任何想法。 以下是jquery代码: wrapper.on("click", "button", function(e){ e.preventDefault(); var parent = $(this).parent

我正在尝试构建一个应用程序的用户界面,用户可以在单击“添加问题”时添加ul和li元素,我成功地开发了前端部分,这里有一个预览:

但问题是,当将数据保存到数据库时,这太让我头疼了,有没有办法将数据保存到一个数组中,这样我就可以用php显示它们,欢迎任何想法。

以下是jquery代码:

wrapper.on("click", "button", function(e){ 
        e.preventDefault();
        var parent = $(this).parent().parent().parent().parent().parent().parent();
        var parentID  = $(this).attr('element-id');
        var elementID = 1000000000000000000*Math.random();
        parentIDs.push(elementID);
        if($(this).attr('class') == "add_field_button btn btn-success"){
           if(parent.find('ul').length){
            parent.find('ul').first().append(`
            <li>
              <div class="panelcb white-box">
                    <div class="form-horizontal form-material">
                    <div class="form-group">
                  <label class="col-md-12">Question</label>
                    <div class="col-md-12">
                            <input type="text" placeholder="Your Question" value="testqst" class="question question`+parentID+` form-control form-control-line" parent-question="`+parentID+`" element-question="`+elementID+`"> </div>
                    </div>
                    <div class="form-group">
                        <label class="col-md-12">Response</label>
                        <div class="col-md-12">
                            <input type="text" placeholder="Your Response" value="testqst" class="response response`+parentID+` form-control form-control-line" parent-response="`+parentID+`" element-response="`+elementID+`"> </div>
                    </div>
                    <div class="form-group">
                  <div class="row">
                    <div class="col-sm-4">
                        <button class="add_field_button btn btn-success" element-id="`+elementID+`">Add Question</button>
                    </div>
                    <div class="col-sm-4">
                        <button class="delete_field_button btn btn-error" >Delete</button>
                    </div>
                  </div>
                </div>
                    </div>
                  </div>
            </li>`); 
           }else{
            $(this).closest('li').append(`
            <ul><li>
              <div class="panelcb white-box">
                <div class="form-horizontal form-material">
                  <div class="form-group">
                      <label class="col-md-12">Question</label>
                      <div class="col-md-12">
                          <input type="text" placeholder="Your Question" value="testqst" class="question question`+parentID+` form-control form-control-line" parent-question="`+parentID+`" element-question="`+elementID+`"> </div>
                  </div>
                  <div class="form-group">
                      <label class="col-md-12">Response</label>
                      <div class="col-md-12">
                          <input type="text" placeholder="Your Response" value="testqst" class="response response`+parentID+` form-control form-control-line" parent-response="`+parentID+`" element-response="`+elementID+`"> </div>
                  </div>
                  <div class="form-group">
                  <div class="row">
                    <div class="col-sm-4">
                        <button class="add_field_button btn btn-success" element-id="`+elementID+`">Add Question</button>
                    </div>
                    <div class="col-sm-4">
                        <button class="delete_field_button btn btn-error" >Delete</button>
                    </div>
                  </div>
                </div>
                </div>
              </div>
            </li></ul>`); 

            }
       }else if($(this).attr('class') == "delete_field_button btn btn-error"){
        parent.remove();
       }
wrapper.on(“单击”、“按钮”),函数(e){
e、 预防默认值();
var parent=$(this.parent().parent().parent().parent().parent().parent().parent().parent();
var parentID=$(this.attr('element-id');
var elementID=10000000000000000*Math.random();
parentId.push(elementID);
if($(this.attr('class')==“添加\u字段\u按钮btn btn成功”){
if(父查找('ul').length){
find('ul').first().append(`
  • 问题: 回应 添加问题 删除
  • `); }否则{ $(this).最近('li')。追加(`
    • 问题: 回应 添加问题 删除
    `); } }else if($(this.attr('class')=“删除字段\按钮btn btn错误”){ parent.remove(); }
    谢谢是预付款。

    好吧

    如果整个用户交互区域(我称之为游乐场)可以放在一个容器中:

    <div id='playground'>
    
    .. all the ul's and li's..
    
    </div>
    
    或者是一篇AJAX文章:

    $.post( PostUrl, { playground: $('#playground').html() } );
    

    另一种方法是不保存dom元素,而是保存文本,因此,当下次加载数据时,通过它检查响应循环并创建domSaving only文本值是最困难的事情,因为在每个li元素中,用户都可以使用li元素添加ul,这很难实现。确定后,将dom转换为字符串和save它
    $(document).ready(function () {
        $('#form-playground').on('submit', function () {
            $('#playground-container').html($('#playground').html());
            return true;
        });
     });
    
    $.post( PostUrl, { playground: $('#playground').html() } );