首页 > 解决方案 > 通过 laravel 更新 MySQL 中的选择标签

问题描述

你好我的主人,

我想更新(链接名称、链接地址、链接类型)。HTML 页面提要中带有标记的链接类型。我知道互联网上有很多关于 CURD 的代码,但我不知道为什么我的代码不能正确执行。我在下面提到了一些问题,可能很长,所以首先道歉。

第一部分:使用 Ajax 从数据库中获取数据。在editlink.blade.php

try {
    for(var count=0; count < data.length; count++)
    {
   html +='<tr >';
   html +='<td contenteditable class="column_name" data-column_name="link_name" data-id="'+data[count].id+'">'+data[count].name+'</td>';
        html += '<td contenteditable class="column_name" data-column_name="link_add" data-id="'+data[count].id+'">'+data[count].Address+'</td>';
        html += '<td contenteditable class="column_name" data-column_name="link_type"    data-id="'+data[count].id+'">' +
                    '<select id="opttypes"  value="'+data[count].id+'">' +
                        '<option id="opt1"'+ check_selected1(data[count].type)+' value="1"'+' >'+d1+'</option>' +
                        '<option id="opt2"'+  check_selected2(data[count].type)+' value="2"'+' >'+d2+'</option>' +
                        '<option id="opt3"'+  check_selected3(data[count].type)+' value="3"'+' >'+d3+'</option>' +
                        '<option id="opt4"'+ check_selected4(data[count].type)+' value="4"'+' >'+d4+'</option>' +
                    '</select>' +
               '</td>';
        html += '<td><button type="button" class="btn btn-danger btn-xs delete" id="'+data[count].id+'">Delete</button>' +
            '<button type="button" class="btn btn-success btn-xs edite" id="'+data[count].id+"_"+count+'">Update</button></td></tr>';
    }
    $('tbody').html(html);
}// end try
catch (e) {

    document.getElementById("demo").innerHTML = "error accrue in fetch form DB ";

}

说明第一部分:

1) 数据是来自 Ajax 的支持变量,包括 DB 中的 weblinks 表。2)编辑按钮中的展开计数用于引用表格中的行,然后获取单元格的内容。

第二部分:editlink.blad.php中编辑按钮的java代码

$(document).on('click', '.edite', function(){
    var allid=$(this).attr("id").split("_");// try to access id of data and number of row in HTML table
    var id2=allid[0];// fetch ID of data in DB
    var countRow=Number(allid[1])+2;// calculate detected row that user clicked.
    var link_name = document.getElementById("html_table").rows[countRow].cells.item(0);// gets links name
    var link_add =document.getElementById("html_table").rows[countRow].cells.item(1);// gets link address
        var link_type=$("#link_type :selected").val();// gets which option user clicked.
        if(link_name != '' && link_add != '' && link_type!='' )
    {

        if(!confirm("Do you want to edit this row")) {
            return false;
        }

            try
            {
                $.ajax({
                    url:"{{ route('weblink.update_data') }}",
                    method:"POST",
                    data:{link_name:link_name, link_add:link_add, link_type2:link_type, id:id, _token:_token},
                    success: function(data){ // What to do if we succeed
                        if(data == "success")
                            $('#message').html(data);
                        },
                    error: function(data){
                        alert('Error'+data);
                    }
                })
            }
            catch (e) {
                $('#message').html("<div class='alert alert-danger'>error in receiving data from Ajax   </div>");

            }
    }// end if check empty box
    else {
        $('#message').html("<div class='alert alert-danger'>Both Fields are required</div>");
    }

});

说明这部分

1)当我点击更新按钮选项标签显示-1表示第一个选项没有用。我使用此代码使添加按钮正常工作,但我不知道为什么此功能不起作用。

第三部分:控制器中的功能

 function update_data(Request $request)
{
    if($request->ajax())
    {
              weblink::where('id', $request->id)->update([
             'name' => '$request->link_name',
             'Address'=>'$request->link_add',
        type=>'$request->link_type2'


        ]);
                echo '<div class="alert alert-success">Data Updated</div>';
    }
}

说明这部分

1) Weblink 是模型

第四部分:用于更新的web.php

Route::post('/weblink/update_data', 'weblinksController@update_data')->name('weblink.update_data');

对不起各位,我知道我的代码很无聊。如果可能的话帮助我。如果每个人都喜欢请给我你的邮件,我将完整地发送我所有的代码(视图、控制器和网络)。

此致。

标签: javascriptphplaravel

解决方案


推荐阅读