Php Ajax在下拉列表中发送相同的值但不同的选项
我有一个用户的数据表,我试图通过将角色从数据库填充到数据表来改变他们的角色。我使用ajax来改变角色,它很有效。但问题是,从下拉列表中选择选项的值并没有发送到数据库 随信附上我的控制器函数视图和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
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();哇!这很有效。非常感谢