如何在用户提交邮箱表单时无需手动输入获取对应行的电影id
解决方案
你可以直接在每行的表单中加入hidden类型的输入控件来传递对应电影的id,这类控件不会在前端页面展示给用户,也不需要用户手动填写,提交表单时会自动把你预设的id值一并传给后端。
具体修改步骤
- 第一步:修改表格渲染的代码,在每个表单内部新增隐藏输入域,值绑定当前行对应的电影id
修改后的渲染代码如下:
echo "<tr> <td style='text-align:center'>".$value['id']."</td> <td style='text-align:center'>".$value['name']."</td> <td style='text-align:center'>".$value['rating']."</td> <td style='text-align:center'>".$value['production']."</td> <td style='text-align:center'>".$value['budget']."</td> <td> <form action='like.php' method='post'> <!-- 新增隐藏域传递电影id --> <input type='hidden' name='movie_id' value='".$value['id']."'> E-mail: <input type='text' name='email3'><br> <input type='submit'> </form> </td> </tr>";
- 第二步:在
like.php中通过$_POST['movie_id']即可获取对应当前行的电影id,和用户输入的邮箱$_POST['email3']搭配使用即可完成数据库更新操作。
额外注意事项
- 拿到参数后要做合法性校验:比如校验邮箱格式是否正确、movie_id是否为正整数,避免非法参数传入
- 操作数据库时务必使用预处理语句执行SQL,避免SQL注入风险
- 可以考虑给邮箱输入框加上
type="email"属性,前端就可以做基础的邮箱格式校验
内容的提问来源于stack exchange,提问作者Karry Xia
相关产品推荐
相关产品推荐

