thinkphp3.1 表单中为啥带name带[]的,后台得不到值?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了thinkphp3.1 表单中为啥带name带[]的,后台得不到值?相关的知识,希望对你有一定的参考价值。
<form name="form" action="ApiYing::U('User/Group/GroupAdd')" method="post" >
<input type="text" name="pics[]">
<input type="text" name="explain[]">
<input type="text" name="pics[]">
<input type="text" name="explain[]">
<input type="text" name="pics[]">
<input type="text" name="explain[]">
<input type="submit" value="提交">
</form>
上面这种写法,在thinkphp中得不到值,请问修改thinkphp哪个地方可以让后台得到表单数据
表单是下面的
打印结果是下面的
咱们专业点吧,没看到我的打印结果吗?我用的就是print_r()打印的。这个是thinkphp的过滤机制给过滤掉了,不是打印的方式不对。我要的是在哪能把那个过滤机制给修改掉
带布尔值的 useState
【中文标题】带布尔值的 useState【英文标题】:useState with a boolean 【发布时间】:2020-03-16 14:52:53 【问题描述】:我有一个 react next.js 项目和一个表单。我想在我的表单中使用滑块。顺便说一句,我使用语义 ui 反应。我有一个带有以下输入的 useState 钩子:
function CreateTicket()
const [ticket, setTicket] = useState(
name: "",
description: "",
media: "",
priority: false
);
....
还有一个handleChange、handleSubmit 和一个handleToggle 函数。当我在 console.log 中提交表单时,它不会将优先级的值设置回 false。
<Checkbox
style= padding: "1rem"
label="Important?"
name="priority"
toggle
onChange=handleToggle
/>
const handleToggle = event =>
let priority = event.target;
setTicket(prevState => ( ...prevState, priority: !priority ));
;
console.log ->
页面刷新后:
name: "", description: "", media: "", priority: false
之后:切换
name: "", description: "", media: "", priority: true
第二次切换后
name: "", description: "", media: "", priority: true
我做错了什么?
【问题讨论】:
event.target
没有属性 priority
据我所知,!undefined
是 true
。
【参考方案1】:
您需要从prevState
解构priority
,而不是event.target
:
const handleToggle = event =>
setTicket(( priority, ...prevState ) =>
( ...prevState, priority: !priority )
);
;
作为一种优化,您可以将handleToggle
与useCallback()
一起记忆,这样<Checkbox/>
就不需要在每次状态更新时重新渲染:
const handleToggle = useCallback(event =>
setTicket(( priority, ...prevState ) =>
( ...prevState, priority: !priority )
);
, [setTicket]);
【讨论】:
以上是关于thinkphp3.1 表单中为啥带name带[]的,后台得不到值?的主要内容,如果未能解决你的问题,请参考以下文章