例如我有个套餐
我想要添加不同的介绍,按照数据库的写法,应该是添加两个表,一个为套餐表,一个是介绍表,介绍表里面有个套餐表ID,查找
每次点击添加介绍,就会出现一个介绍框
代码 在class里面加个end 和num。 end表示结束,num就是你添加的数量
<div class="form-group row end num">
<label for="example-text-input" class="col-sm-2 col-form-label">介绍1</label>
<div class="col-sm-10">
<input class="form-control " type="text" value="" placeholder="输入介绍1" name="js1">
</div>
</div>
添加介绍的按钮add方法,以及确定按钮的queding方法来生成json数组,数据表字段就是js,加个inputhidden来提交表单
<div class="form-group row">
<label for="example-text-input" class="col-sm-2 col-form-label">添加介绍</label>
<div class="col-sm-10">
<a href="javascript:;" class="btn btn-success right" onclick="add()">添加介绍</a>
<span style="color: red">*添加完成请点击确定*</span>
<a href="javascript:;" class="btn btn-primary right" onclick="queding()">确定</a>
</div>
</div>
<input type="hidden" value="" id="data" name="js">
add方法
function add() {
var num = $('.num').length + 1;
var html = ' <div class="form-group row end num">\n' +
' <label for="example-text-input" class="col-sm-2 col-form-label">介绍'+num+'</label>\n' +
' <div class="col-sm-10">\n' +
' <input class="form-control " type="text" value="" placeholder="输入介绍'+num+'" name="js1">\n' +
' </div>\n' +
' </div>';
$('.end:last').after(html);
}
queding方法 所有通过添加介绍按钮添加的name都为js1,抓到input name=js1,通过each把值取出来,存到一个 js_arr的数组里,然后在创建一个对象,对象的形式我们把它写为json格式,把每条数据 **js:数据【i】**格式利用push函数传到一个数组中,用JSON.stringify来讲JavaScript值转为JSON字符串,最后,通过把值提交到id = data 的输入框中,点击添加,将会添加一个json数组进入数据库字段。
function queding() {
var js_arr = new Array();
$("input[name='js1']").each(function () {
var val = $(this).val();
js_arr.push(val)
});
var obj = {};
var arr = new Array();
for (var i = 0; i < js_arr.length; i++) {
obj = {
"js":js_arr[i],
};
arr.push(obj);
}
arr = JSON.stringify(arr)
$('#data').val(arr);
alert('添加成功')
}
数据库效果 JS的类型选择text
最后,我们只需要利用函数json_decode将数据库里json形式的数组转为PHP数组,即可以使用了,就像是数据库里添加数组一样。