input('get.id/d');
input('post.name/s');
input('post.ids/a');
Request::instance()->get('id/d');
ThinkPHP5.0版本默认的变量修饰符是/s
,如果需要传入字符串之外的变量可以使用下面的修饰符,包括:
修饰符 | 作用 |
---|---|
s | 强制转换为字符串类型 |
d | 强制转换为整型类型 |
b | 强制转换为布尔类型 |
a | 强制转换为数组类型 |
f | 强制转换为浮点类型 |
如果你要获取的数据为数组,请一定注意要加上
/a
修饰符才能正确获取到。
前台发送
$.ajax({
method : 'post',
url : '{:url("Course/save_selected")}?course={$course}',
data : {
'noSelected' : nocheckedList,
'isSelected' : checkedList,
},
success : complete,
error:function(response){
//数据给后端后返回错误
console.log(response);//打印返回的信息
}
});
后台接受
$isSelected = input('param.isSelected/a');//选中的数组 一维数组
$noSelected = input('param.noSelected/a');//未选中的数组 一维数组
后续:payload
第二个 坑:
正常来说:
<input name="checkid" type="checkbox" value="{$b.auth_id}" style="margin-left: 20px;"
{if condition = "in_array($b['auth_id'],$check)"}
checked='checked'
{/if}
>
搞了一下午 搞出来的 他一用js就错误
<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}
>
这么写也是正常的 唯独不能使用in_array 原因可能是因为他是js渲染的 有些PHP的函数不认可 但是js中能使用变量
{foreach name="Selected" item="vo"}
{$vo.lid}
{if condition="$vo.lid == 7"}123123{/if}
{/foreach}
能使用thinkPHP5的内置标签 但是不不能使用in_array 确实很奇怪 {{# }}可以使用{{d.id}} 然后也能使用变量 所有就让他们两者来比较 因为if标签里不嫩使用{{#}} 所以只能使用 {{#}}这种模式来试试