我的模式表单中有一个拖放功能,用户可以将项目从左向右拖动,但在保存时,它不会将拖放的项目存储在数据库中。我已将输入标记中的
name
设置为等于控制器输入,但仍然没有结果。有人可以提供帮助吗?
我的控制器:
public function storesurvey(Request $request)
{
$energy = new Customer();
$energy->customername = $request->input('customername');
$energy->rank1 = $request->input('rank1');
$energy->rank2 = $request->input('rank2');
$energy->save();
return redirect('/survey')->with('success', 'data added');
}
我的看法:
< script >
function allowDrop(ev) {
ev.preventDefault();
}
function drag(ev) {
ev.dataTransfer.setData("text", ev.target.id);
}
function drop(ev) {
ev.preventDefault();
var data = ev.dataTransfer.getData("text");
ev.target.appendChild(document.getElementById(data));
}
// the Ajax Post update
$.ajax({
type: "POST",
dataType: "json",
url: "{{ url('Custom-sortable') }}",
data: {
order: order,
_token: token
},
success: function(response) {
if (response.status == "success") {
console.log(response);
} else {
console.log(response);
}
}
}); <
/script>
<style>.container {
max-width: 700px;
margin: 0 auto;
border: 1px solid #ccc;
padding: 10px;
height: 300px;
display: flex;
justify-content: space-between;
}
.source-container {
width: 300px;
border: 1px solid #ccc;
}
.item {
height: 30px;
border: 1px solid #ccc;
margin: 2px;
background-color: lightyellow;
cursor: move;
}
.item p {
text-align: center;
margin: 5px;
}
.source {
position: relative;
border: 1px solid #ccc;
margin: 5px;
height: 36px
}
.destination-container {
width: 300px;
border: 1px solid #ccc;
}
.destination {
height: 36px;
border: 1px solid #ccc;
margin: 5px;
background: #f1f1f1;
border-left: 30px solid #ccc;
position: relative;
}
.ui-droppable-active {
border-color: #bbb;
}
.ui-droppable-hover {
background: #ddd;
}
.destination span {
position: absolute;
z-index: 2;
padding: 9px;
left: -28px;
}
.ui-draggable-dragging {
z-index: 999 !important;
}
</style>
<h2>Drag and Drop</h2>
<div class='container'>
<div class="source-container">
<div class="source" ondrop="drop(event)" ondragover="allowDrop(event)">
<div class="item" value="item" name="rank1" draggable="true" ondragstart="drag(event)" id="rank1">
<p>Item 1</p>
</div>
</div>
<div class="source" ondrop="drop(event)" ondragover="allowDrop(event)">
<div class="item" value="item2" name="drag2" draggable="true" ondragstart="drag(event)" id="drag2">
<p>Item 2</p>
</div>
</div>
</div>
<div class='destination-container'>
<div class="destination" name="rank1" value="rank1" id="rank1" ondrop="drop(event)" ondragover="allowDrop(event)">
<span>1</span>
</div>
<div class="destination" name="rank2" value="rank2" id="rank2" ondrop="drop(event)" ondragover="allowDrop(event)">
<span>2</span>
</div>
</div>
</div>
你检查过型号吗? Fillable 必须包含用于存储更改的列的名称。如果那里是 true,则将其放入验证控制器中并在视图中获取错误消息