第一个坑:接收数组必须要用 /a 来修饰 如 input('param.name/a')
获益:链接url可以按照如下形式写并且也可以直接在js中直接使用{$var} 这是后台assign发送来的值 就不用再html写个hidden隐藏然后再去用js获取值了
checkbox选中后ajax发来的值
$.ajax({
method : 'post',
url : '{:url("Course/save_selected")}?course={$course}',
data : {
'noSelected' : nocheckedList,
'isSelected' : checkedList,
},
success : complete,
error:function(response){
//数据给后端后返回错误
console.log(response);//打印返回的信息
}
});
后台接收
必须要用 /a 来修饰 否则接受不到值
$isSelected = input('param.isSelected/a');//选中的数组 一维数组
$noSelected = input('param.noSelected/a');//未选中的数组 一维数组
修饰符 | 作用 |
---|---|
s | 强制转换为字符串类型 |
d | 强制转换为整型类型 |
b | 强制转换为布尔类型 |
a | 强制转换为数组类型 |
f | 强制转换为浮点类型 |
如果你要获取的数据为数组,请一定注意要加上
/a
修饰符才能正确获取到。
后续需要了解 :payload和 formdata的ajax发送形式
第二个坑
{if condition = "in_array($a['auth_id'],$check)"}
checked='checked'
{/if}
in_array() 使用的很妙
这是我折腾了一个下午搞定的能用foreach标签
<input type="checkbox" class="lesson_id" name="lesson_id[]" value="{{d[i].id}}"
{foreach name="Selected" item="vo"}
{{# if(d[i].id=={$vo.lid}){ }}
checked
{{# } }}
{/foreach}
>