Php 角度-存储复选框值并显示它们

Php 角度-存储复选框值并显示它们,php,mysql,angularjs,wordpress,Php,Mysql,Angularjs,Wordpress,假设您有27个复选框,让我们称它们为“类别”。这些复选框位于一个部分中,您可以选择多个复选框并保存 结果是:如果保存表单,类别将添加到MySQL中的个人资料中 我的问题是: 我该如何命名模型 发送表单后应如何存储de值 我有一个解决方案,我保存了第n个类别,然后在加载时单击它们,但这不是最好的 代码如下: $scope.getSelectedCats = function() //Returning array: [1,4,5,6] { $return_array = [];

假设您有27个复选框,让我们称它们为“类别”。这些复选框位于一个部分中,您可以选择多个复选框并保存

结果是:如果保存表单,类别将添加到MySQL中的个人资料中

我的问题是:

  • 我该如何命名模型

  • 发送表单后应如何存储de值

我有一个解决方案,我保存了第n个类别,然后在加载时单击它们,但这不是最好的

代码如下:

 $scope.getSelectedCats = function()  //Returning array: [1,4,5,6]
 {
   $return_array = [];
   $i = 0;

   if($scope.whoareu.develop){ $return_array[$i] = 1; $i++;}
   if($scope.whoareu.design){ $return_array[$i] = 2; $i++;}
   if($scope.whoareu.produce){ $return_array[$i] = 3; $i++;}
   if($scope.whoareu.repair){ $return_array[$i] = 4; $i++;}
   [...]

   return $return_array;

 }
HTML


发展

设计

产生

修理

[...]
最后,一个非常丑陋的加载检查解决方案:

  <?php
  //$dbData = Data row from mysql, in object, by Wordpress
  echo "setTimeout(function(){";
  foreach(explode(',', $dbData->interested_in) as $val)
  {
    //echo "$('input:checkbox[name=whatareu]').filter('[value=$val]').click();";
    echo "$('input:checkbox[name=whatareu]').eq($val-1).click();";
  }
  echo "}, 1000);";
  ?>

我不知道我是否理解您的问题,请参阅我的代码片段。如果需要,您可以创建一些映射函数
setDefaultState(basedOn)
在model
checkboxs
中设置
选中的

如果问题是离开控制器后数据丢失,那么应该使用一些单例存储,如Angular的工厂,并将选中的类别存储在那里

angular.module('app',[])
.controller('FrameController',['$injector',
功能($injector){
var vm=这个;
vm.checkboxs=[{
id:‘路8’,
标签:“开发”,
核对:正确
}, {
id:‘路9’,
标签:“设计”
}]
角度扩展(vm{
保存:保存
})
函数save(){
//API调用
console.log('checked:',vm.checkboxs.filter(函数(c)){
返回c.checked
}).map(功能(c){
返回{
id:c.id
}
}));
}
}
]);
setTimeout(函数(){
引导(document.getElementById('body'),['app']);
});

  • {{checkbox.label}
拯救
我不知道我是否理解您的问题,请参阅我的代码片段。如果需要,您可以创建一些映射函数
setDefaultState(basedOn)
在model
checkboxs
中设置
选中的

如果问题是离开控制器后数据丢失,那么应该使用一些单例存储,如Angular的工厂,并将选中的类别存储在那里

angular.module('app',[])
.controller('FrameController',['$injector',
功能($injector){
var vm=这个;
vm.checkboxs=[{
id:‘路8’,
标签:“开发”,
核对:正确
}, {
id:‘路9’,
标签:“设计”
}]
角度扩展(vm{
保存:保存
})
函数save(){
//API调用
console.log('checked:',vm.checkboxs.filter(函数(c)){
返回c.checked
}).map(功能(c){
返回{
id:c.id
}
}));
}
}
]);
setTimeout(函数(){
引导(document.getElementById('body'),['app']);
});

  • {{checkbox.label}
拯救
到目前为止,您有哪些代码?还有,您使用的是什么版本的Angular?更新后,我使用的是Angular 1.:)到目前为止你有什么代码?还有,您使用的是什么版本的Angular?更新后,我使用的是Angular 1.:)
  <?php
  //$dbData = Data row from mysql, in object, by Wordpress
  echo "setTimeout(function(){";
  foreach(explode(',', $dbData->interested_in) as $val)
  {
    //echo "$('input:checkbox[name=whatareu]').filter('[value=$val]').click();";
    echo "$('input:checkbox[name=whatareu]').eq($val-1).click();";
  }
  echo "}, 1000);";
  ?>