thinkPHP5 input接受数组 踩的坑

  1. input('get.id/d');
  2. input('post.name/s');
  3. input('post.ids/a');
  4. 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

 

第二个 坑:

thinkPHP5 input接受数组 踩的坑_第1张图片

正常来说:


搞了一下午 搞出来的  他一用js就错误

这么写也是正常的 唯独不能使用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标签里不嫩使用{{#}} 所以只能使用 {{#}}这种模式来试试

 

你可能感兴趣的:(thinkphp,php,js)