Jquery 用于显示和更改DB字段状态的ajax按钮-Laravel 4
我正在尝试创建一个简单的设置面板。 我想创建几个按钮,用于显示和更改某些选项的状态,并在0和1之间切换它们的值。 基本上,这就是我们在Stackoverflow中投票的答案 在友好的帮助下,我创建了一个按钮,它可以工作: 视图: 控制器:Jquery 用于显示和更改DB字段状态的ajax按钮-Laravel 4,jquery,ajax,laravel,Jquery,Ajax,Laravel,我正在尝试创建一个简单的设置面板。 我想创建几个按钮,用于显示和更改某些选项的状态,并在0和1之间切换它们的值。 基本上,这就是我们在Stackoverflow中投票的答案 在友好的帮助下,我创建了一个按钮,它可以工作: 视图: 控制器: public function toggle_option() { $userdata=UserWorkspace::where('user_id','=',Auth::user()->id)->first() JS: 问题: 在控制器方法或js中创
public function toggle_option() {
$userdata=UserWorkspace::where('user_id','=',Auth::user()->id)->first()
JS:
问题:
if($option = 1) {
if($userdata->ShowToolbar == 1)
{
$userdata->ShowToolbar = 0;
... and so on...
Thx如果您希望同一个按钮将值从1更改为0或从0更改为1,我建议您让服务器端处理适当的值,然后从按钮调用路由(无任何参数)。所以你的按钮就是
<a data-remote="true" data-method="post" href="{{ route('join.join_an_action') }}" id="experiment_update">
至于其他按钮:您需要使DOM相对于链接进行爬网:
$('a[data-remote=true]').on('ajax:beforeSend', function(xhr, settings) {
$(this).find('.dropdown-toggle').click();
});
$('a[data-remote=true]').on('ajax:success', function(xhr, data, status) {
$(this).text(data.interface_update);
});
那么你能把答案标为正确答案吗?:)我这样做了,但它不能解决同一视图上的多个按钮的问题-我更新了我的初始问题-请检查。您还必须编辑内容以向控制器部分添加两行,像我这样的noob可能会遗漏一些明显的内容。开始时:$userdata=UserWorkspace::where('user_id','=',Auth::user()->id)->first();最后是:returnresponse::json($Response);如果您想更改不同的表(意思是:不同的模型),那么就无法绕过多个
If
语句,因为模型和属性都必须更改。对于同一模型中的不同选项,您可以在开关($option){case1:$attribute='ShowToolbar';break;case2:…}
中设置属性名称,然后在最后只有一个if语句检查它是1
还是0
。在这里,如果($setactionstatus->attributes[$attribute]==1){$setactionstatus->attributes[$attribute]=0}或者{…},您将使用。
$('a[data-remote=true]').on('ajax:beforeSend', function(xhr, settings) {
$(this).find('.dropdown-toggle').click();
});
$('a[data-remote=true]').on('ajax:success', function(xhr, data, status) {
$(this).text(data.toggle_update);
});
if($option = 1) {
if($userdata->ShowToolbar == 1)
{
$userdata->ShowToolbar = 0;
... and so on...
<a data-remote="true" data-method="post" href="{{ route('join.join_an_action') }}" id="experiment_update">
if($setactionstatus->Ajaxtest === 1)
{
$setactionstatus->Ajaxtest = 0;
$response = array(
'interface_update' => trans('messages.un_joined')
);
}
else
{
$setactionstatus->Ajaxtest = 1; // This also handles newly created UserWorkspaces
$response = array(
'interface_update' => trans('messages.joined')
);
}
$setactionstatus->save();
$('a[data-remote=true]').on('ajax:beforeSend', function(xhr, settings) {
$(this).find('.dropdown-toggle').click();
});
$('a[data-remote=true]').on('ajax:success', function(xhr, data, status) {
$(this).text(data.interface_update);
});