如何在数据库中保存输入类型?

时间:2018-01-26 20:28:32

标签: php jquery

假设我有一个设置页面,其中包含有关某人的不同信息。在该页面中,它包含一个爱好部分。这个人可以增加他想要的爱好。应该有一个添加按钮来为兴趣爱好添加更多字段。

使用jquery动态添加更多字段是一项简单的任务。但我想要的是,当用户动态添加字段时,那个字段应该保存到数据库中,我的意思是说,通常,当我们使用jquery创建字段时,它会在页面刷新时消失。但我想列出这些信息。 (在该领域内)。如何保存动态创建的输入类型?

我做了很多研究,我还没有收到一个单一的帮助。我期待Stackoverflow团队肯定会有所帮助。我添加动态字段的代码如下:

<div class="items">


    <div class="form-group"><label>Author Email:</label>
        <input id="author_email" class="form-control" name="author" required="required" type="EMAIL" />
    </div>

</div>

<button type="button" class="add_field_button">Add Field</button>

Jquery代码如下:

$(document).ready(function() {
var max_fields = 20; //maximum input boxes allowed
var wrapper = $("#items"); //Fields wrapper
var add_button = $(".add_field_button"); //Add button ID

var x = 1; //initlal text box count

$(add_button).click(function(e){ //on add input button click
    e.preventDefault();
    if(x < max_fields){ //max input box allowed
    x++; //text box increment
    $(wrapper).append('

    <div class="form-group"><label for="title">Author Email:</label>' +
        '<input class="form-control col-md-11" id="author_email" type="email" placeholder=""name="author"/>' +
        '<a href="#" class="remove_field"><i class="fa fa-times"></a>
    </div>

    '); //add input box
    }
});

$(wrapper).on("click",".remove_field", function(e){ //user click on remove field
    e.preventDefault(); $(this).parent('div').remove(); x--;
    })
});

我想再次确认我的问题,我希望在页面刷新时看到文本字段中的爱好。这也是我想保存输入类型。我能做些什么呢?我应该将<input type="text" name="hobby[]">添加到数据库还是比这更好的东西?

1 个答案:

答案 0 :(得分:0)

您的用户不会从数据库角度添加字段,因此您必须为其提供支持它的数据结构。

这是一个这样的结构的例子。有一百万种方法可以做到。

表 - USER_DATA_TYPES

  • DATA_TYPE_ID - PK
  • DATA_TYPE_NAME
  • 这是不可编辑的。 ID可能是数字,2个字符串,3个日期。

表 - USER_FIELD_TYPES - 用户添加的字段类型

  • USER_ID - (数据类型取决于您在系统中唯一标识用户的方式) - PK部分
  • FIELD_ID - 在生成的引擎ID下。数字。 PK的一部分。
  • FIELD_NAME - 字段名称
  • DATA_TYPE_ID - FK指向USER_DATA_TYPES
  • ISMULTI - NUMBER为1或0,表示它是否为多字段

表 - USER_FIELD_DATA - 用户的实际数据。如果ISMULTI = 0,那么最多只有一条USER_ID / FIELD_ID组合的记录。

  • USER_ID - PK的一部分
  • FIELD_ID - 键的一部分
  • FIELD_DATA_ID - 键的一部分 - 自动生成
  • DATA_VALUE(将其设为字符串 - 但还有其他方法可以执行此操作)

有几点想法,您可以将USER_FIELD_DATA放入3个单独的表中(一个用于数字,一个用于字符串,一个用于日期),或者将其保存在一个表中。各方面都有利弊。显然,单个表的专业人员结构简单,但是对数据进行过滤/排序,数字/日期需要事先进行投射,并且还需要更多空间来存储数据。

另一种想法是,您可能希望添加列来跟踪上次更改日期,最后将用户更改为数据,以及您可以尝试的许多其他可能的事情。