Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Ajax在下拉列表中发送相同的值但不同的选项_Php_Mysql_Ajax_Laravel 5 - Fatal编程技术网

Php Ajax在下拉列表中发送相同的值但不同的选项

Php Ajax在下拉列表中发送相同的值但不同的选项,php,mysql,ajax,laravel-5,Php,Mysql,Ajax,Laravel 5,我有一个用户的数据表,我试图通过将角色从数据库填充到数据表来改变他们的角色。我使用ajax来改变角色,它很有效。但问题是,从下拉列表中选择选项的值并没有发送到数据库 随信附上我的控制器函数视图和ajax代码。 请建议我解决这个问题 控制器: public function changeRole(Request $request){ $id = Input::get('id'); $isAdmin = Input::get('isAdmin'); User::findOrF

我有一个用户的数据表,我试图通过将角色从数据库填充到数据表来改变他们的角色。我使用ajax来改变角色,它很有效。但问题是,从下拉列表中选择选项的值并没有发送到数据库

随信附上我的控制器函数视图和ajax代码。 请建议我解决这个问题

控制器:

public function changeRole(Request $request){
    $id = Input::get('id');
    $isAdmin = Input::get('isAdmin');
    User::findOrFail($id)->update(['isAdmin'=>$isAdmin]);
}
阿贾克斯:

$(document).ready(function(){
$('select').on('change' , function (event){
 id = $(this).data('id');
isAdmin = $('#role').val();
//alert(role);
$.ajax({
    type: 'POST',
    url: SITE_URL + '/changeRole/',

    data: {
        '_token': $('input[name=_token]').val(),
        'id': id,
        'isAdmin': isAdmin

    },
    cache: false,          
    success: function(data) {              
    toastr.success('Admin Role Successfully Changed ! ', 'Congratulations', {timeOut: 5000});
    //$('#example1').DataTable().ajax.reload();           
    },

    error: function (jqXHR, exception) {    
        console.log(jqXHR);
        toastr.error('Something Error !', 'Status not Changed!')
        },
    }); 
}); 
});
视图:

<td>
    <form method="post">
     {{ csrf_field() }}
     <div class="form-group">                
         <select class="form-control" data-id="{{$user->id}}" id="role" name="role">
         <option value="0">Select a Role</option>
          @foreach ($roles as $role)
          <option @if($user->isAdmin==$role->id) selected @endif value="{{ $role->id }}">{{ $role->name }}</option>
          @endforeach
          </select>
       </div>  
    </form>          
  </td>

{{csrf_field()}}
选择一个角色
@foreach($roles作为$role)
isAdmin==$role->id)选择@endif value=“{{{$role->id}}”>{{{$role->name}
@endforeach

首先不要使用
Input::get('id')
使用
$request->id
$request->isAdmin

在您的第一行尝试
dd($request->all())
方法,并检查每次是否获得正确的值

不要使用
$('select')
为您的select提供一些id,并将其用作
$('myselect')

在jquery中的变量之前添加
var
,如
var id=$()
,以将其保留在本地范围内。 作为参考,必须阅读以下内容:

不要使用
varid=$(this.data('id')
有时
.data()
会把事情搞砸

把它当作
var id=$(this.attr('data-id')

要获取所选角色的值,请使用以下命令:

var isAdmin=$(this).children(“选项:选定”).val()


希望这能解决很多问题。

首先不要使用
Input::get('id')
使用
$request->id
$request->isAdmin

在您的第一行尝试
dd($request->all())
方法,并检查每次是否获得正确的值

不要使用
$('select')
为您的select提供一些id,并将其用作
$('myselect')

在jquery中的变量之前添加
var
,如
var id=$()
,以将其保留在本地范围内。 作为参考,必须阅读以下内容:

不要使用
varid=$(this.data('id')
有时
.data()
会把事情搞砸

把它当作
var id=$(this.attr('data-id')

要获取所选角色的值,请使用以下命令:

var isAdmin=$(this).children(“选项:选定”).val()


希望这能解决很多问题。

谢谢,我将尝试使用thisvar isAdmin=$(this).children(“选项:已选”).val();哇!这是有效的。非常感谢您和我将尝试此变量isAdmin=$(This.children(“选项:已选择”).val();哇!这很有效。非常感谢