赞
踩
网上搜了好多关于批量修改数据的方法,可能我基础很差,没咋看懂,所以决定用自己的想法实现,我也不知道能不能算是批量修改,但是最终的效果是我想要的,应该算是吧。
我的大体思路是这样的:先获取模态框里的值,然后把值填入到所勾选的数据相对应的字段里。因为是批量对数据操作,所以勾选数据的功能是必不可少的,勾选每一行获得的id进行编辑,然后把勾选的id放入一个数组,注意,这里的id集存到数组的时候,会变为这样的形式['1,2,3']
,这样子不便于后面的遍历查找相同id的数据,所以需要使用split()方法处理一下,等处理好了之后,通过遍历查找相同id的数据;然后是获取模态框的值,获取完成之后也是存在一个数组里面。要是两个数组(一个是勾选id的id集的数组,一个是获取模态框值得数组)的值都没有什么问题的话,就可以利用ajax传到后台使用了。
从前端模态框中获取值(form表单):
function 函数名(){ var customer = new Array() // 定义一个数组 productExpress = document.updateForms.productExpress.value; // 前端模态框中的值,form表单中对应的name在下图,可以对应着看。vlue就是取它将要或者已经输入的值。下面4个同理 productName = document.updateForms.productName.value; productTel = document.updateForms.productTel.value; productOdd = document.updateForms.productOdd.value; productAddress = document.updateForms.productAddress.value; customer[0] = productExpress; // 取出的值放入数组的位置 customer[1] = productOdd; customer[2] = productName; customer[3] = productTel; customer[4] = productAddress; console.log(customer); $.ajax({ type: 'post', url: '/obtain/', traditional: true, dataType: 'json', data:{'customer':customer}, // 利用ajax将已定义并且有值的数组传递到后台 }); }
这是前端模态框,可以对应着上图看:
<form method="post" name="updateForms" > <div class="form-group"> <label for="productExpress" class="control-label">这是productExpress:</label> <input type="text" name="productExpress" class="form-control"/> </div> <div class="form-group"> <label for="productOdd" class="control-label">这是productOdd:</label> <input type="text" name="productOdd" class="form-control"/> </div> <div class="form-group"> <label for="productName" class="control-label">这是productName:</label> <input type="text" name="productName" class="form-control"/> </div> <div class="form-group"> <label for="productTel" class="control-label">这是productTel:</label> <input type="text" name="productTel" class="form-control"/> </div> <div class="form-group"> <label for="productAddress" class="control-label">这是productAddress:</label> <input type="text" name="productAddress" class="form-control"/> </div> <input type="hidden" name="productId" value="0"/> <input type="hidden" name="currentPage" value="1"/> <input type="hidden" name="pageSize" value="10"/> </form>
然后就是后台处理ajax传过来的值:
def edit_data(request):
information = request.POST.getlist('customer') # 在这里接收ajax传过来的值
global component_a
for i in component_a:
updateResult = models.Product.objects.filter(product_id=i).update(product_express=information[0],product_odd=information[1],
product_name=information[2],product_tel=information[3],
product_address=information[4],)
request.GET.get('product_id')
return render(request, 'index_b.html')
这个方法可能很low,但是最起码是实现了我想要的效果。如果哪儿有不对的地方,还请各位大佬指出改正。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。