Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当提交到数据库时,在php中循环复选框

当提交到数据库时,在php中循环复选框
EN

Stack Overflow用户
提问于 2014-02-12 02:20:21
回答 1查看 1.9K关注 0票数 0

目前,我正在构建一个基于复选框的成就系统(因为它与帖子无关),然而,我遇到了一个问题,我似乎无法绕着它转,因为我对循环和数组没有那么方便。

好的,所以我做了一组复选框,这些复选框被张贴在这个页面上,并得到了满意的填充,如下面的代码所示,它帮助我填充页面的那个部分。

代码语言:javascript
运行
AI代码解释
复制
function MakeProfessionlist(){
    $result = LoadListProffesion();
    $i = 0;
    echo '<table class="Overview">';
    while($row = mysqli_fetch_array($result)){
        $i++;
        if(($i % 2) == 0){
            echo "<td class='small'><td><input id='achievementHidden'  type='hidden' value='0' name='IsChecked[]'>";
            echo "<input type='checkbox' id='achievement' name='IsChecked[]' value = '1'>";
            echo "<input name='AchievementId[]' type='hidden' value='".$row['AchievementId']."'></td>";
            echo "<td class='big'>".$row["AchievementName"]."</td></tr>";
        }else{
            echo "<tr><td class='small'><input id='achievementHidden'  type='hidden' value='0' name='IsChecked[]'>";
            echo "<input type='checkbox'id='achievement' name='IsChecked[]' value = '1'>" ;
            echo "<input name='AchievementId[]' type='hidden' value='".$row['AchievementId']."'></td>";
            echo "<td class='big'>".$row["AchievementName"]."</td>";
            }
    }
    echo '</table>';
}

正如您所看到的,我尝试通过两个变量,即AchievementId,和IsChecked值(可以是0或1),在保存这些信息时发生问题。我在数据库中设置了一个充当中介的表( Achievement_User,只有3个条目,即UserId、AchievementId和IsChecked值)。

我的开始是通过下面的代码与复选框一起发布的成就来完成所有的成就。

代码语言:javascript
运行
AI代码解释
复制
if(isset($_POST['AchievementSaveData']))
    {
    // print_r($_POST);
    $checkbox = isset($_POST['IsChecked']) ? $_POST['IsChecked'] : array();
    $Achievement = isset($_POST['AchievementId']) ? $_POST['AchievementId'] : array();
    foreach (array_combine($checkbox, $Achievement) as $IsChecked => $AchievementId){       
        $sql="SELECT * FROM Achievement_User WHERE UserId='".$UserId."' AND AchievementId ='".$AchievementId."'" ;
        $result=mysqli_query($sql); 
        $count=mysqli_num_rows($result);    

        if ($count==1){
            echo 'Update datarow with UserID '.$UserId.', AchievementId '. $AchievementId.' and with a value of '.$IsChecked;' <br>';
            }
        else{
            echo 'Create datarow with UserID '.$UserId.', AchievementId '. $AchievementId.' and with a value of '.$IsChecked.' <br>';
        }
    }
}

现在的问题在于,当我选中一个复选框时,数组就会增加。它所做的40个主菜(也就是发布了多少个成就is,当选中所有东西都是默认的),它为每个选中的值创建了一个额外的数组空间,这使得我的比较毫无用处,因为我得到了一个错误,即数组可以组合。

有什么方法可以使我的成就数组与我的IsChecked值相匹配呢?

编辑:在旁边,当我试图合并数组时,整个foreach循环似乎不再工作了(即使它们在值上匹配)。因此,我的想法是,也许有一种方式,我可以张贴从IsChecked的数组,已经有价值的AchievementId附加到它。如果是这样的话,我又如何解决这个问题呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-12 02:48:43

为什么不直接把成绩的值交给复选框,去掉隐藏的输入呢?

代码语言:javascript
运行
AI代码解释
复制
<input type='checkbox' id='achievement' name='IsChecked[]' value = '<?php echo $row['AchievementId'];?>'>

然后在php中

代码语言:javascript
运行
AI代码解释
复制
 foreach ($IsChecked as $AchievementId){       
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21724994

复制
相关文章
iOS中url的特殊字符转换
一般来说我们调用webVIew的时候,只要给webVIew传一个url,在网页里面就可以显示网页信息。但是当我们传的url比较麻烦或者带文字符,带参数的时候我们需要对特殊字符进行转义。我们还可以用遍历,正则等来把特殊字符给替换掉!!
好派笔记
2021/10/29
3.3K0
Oracle中如何插入或更新特殊字符“&”?
Q 题目 Oracle中如何插入或更新特殊字符“&”? A 答案 假设有如下的SQL语句: UPDATE USERINFO SET PAGEURL = 'MYJSP?PAGE=1&PAGESIZE=
AiDBA宝典
2019/09/30
2.9K0
"SyntaxError: Unexpected end of JSON input", uniapp小程序URL传参包涵特殊字符
image.png }
清出于兰
2022/05/11
8690
"SyntaxError: Unexpected end of JSON input", uniapp小程序URL传参包涵特殊字符
url参数存在特殊字符(“ & @)报错怎么替换:URL中的参数编码梳理
网址URL中特殊字符转义编码 字符 - URL编码值 空格 - %20 " - %22 # - %23 % - %25 & - %26 ( - %28 ) - %29 + - %2B ,
陈哈哈
2020/07/06
5.7K0
url参数存在特殊字符(“ & @)报错怎么替换:URL中的参数编码梳理
JavaScript 中的特殊数值有哪些?
JavaScript 中有几个特殊的数值常量,它们具有特殊的含义和行为。以下是 JavaScript 中的一些特殊数值:
王小婷
2023/10/23
3500
iOS:URL 特殊字符 # UTF-8
1.URL 加载过程中,出现汉字乱码 ---- NSString* urlstr = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 2.链接中包含特殊字符,1方法,会导致特殊字符也进行转码,所以用以下方法 ---- self.url = (NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorD
菜菜不吃蔡
2019/03/06
1.3K0
JS 获取URL中的参数值
本文由 Alone88 创作,采用 知识共享署名4.0 国际许可协议进行许可 本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名 最后编辑时间为: Sep 11, 2019 at 11:40 am
Alone88
2019/10/22
18.3K0
java 对于表情和特殊字符的转码解码处理
转码然后插入到DB当中 String encodestr=URLEncoder.encode("需要转码的内容", "utf-8") 将encodestr插入数据库中 解码然后显示到页面当中 String decodestr=URLDecoder.decode("需要解码的内容", "utf-8") 在页面展示decodestr
用户4191150
2021/08/12
3.8K1
用javascript替换URL中的参数值
今天遇到一个需要用javascript将url中的某些参数替换的需求,想起了不久前从司徒正美先生的博客中淘到了一个parseUrl函数,正好可以借此实现,代码整理如下: //分析url function parseURL(url) { var a = document.createElement('a'); a.href = url; return { source: url, protocol:
菩提树下的杨过
2018/01/22
3.5K0
Mongo字符串类型的数值查询---$Where查询介绍
​        在Mongo中都知道字符串类型大小比较都是以ASCII进行比较的,所以无法真实比较字符串类型的数值大小
莫问今朝
2018/08/31
2.8K0
Mongo字符串类型的数值查询---$Where查询介绍
Java 技术篇 - ServerSocket接收http的url请求中包含中文的处理方法,URLDecode与URLEncode,url解码与编码
效果图: 正常接收到中文的请求是这个样子的:%E6%AC%A2%E8%BF%8E%E6%9D%A5%E5%88%B0%E5%B0%8F%E8%93%9D%E6%9E%A3%E7%9A%84%E5%8D%9A%E5%AE%A2%EF%BC%81 通过解码方法: String url_new = java.net.URLDecoder.decode(url, "UTF-8"); 解码后恢复为中文: 欢迎来到小蓝枣的博客!
小蓝枣
2021/12/01
1.4K0
Java 技术篇 - ServerSocket接收http的url请求中包含中文的处理方法,URLDecode与URLEncode,url解码与编码
Javascript中的url编码与解码(详解)
摘要 本文主要针对URI编解码的相关问题做了介绍,对url编码中哪些字符需要编码、为什么需要编码做了详细的说明,并对比分析了Javascript中和编解码相关的几对函数escape / unescap
Angel_Kitty
2018/04/17
3.2K0
PbootCMS搜索或筛选条件中带特殊字符被过滤,例如·:~、
打开\core\function\helper.php,搜索vars,在下图中圆圈位置里增加需要允许的符号,这里是全局的搜索关键词匹配(前后台同时生效)。
小唐同学.
2022/02/25
2.7K0
html url编码、url解码
encodeURIComponent()编码的解码函数为 decodeURIComponent(),
全栈程序员站长
2022/07/19
5K0
html url编码、url解码
如何使用Sentry为包含特殊字符的用户组授权
Apache Sentry是由Cloudera贡献给Hadoop开源社区的组件,它提供了细粒度级、基于角色的授权以及多租户的管理模式。Sentry当前可以和Hive/Hcatalog、Apache Solr 、Apache Kafka以及Cloudera Impala等集成。
Fayson
2018/09/29
2.3K0
正则中需要转义的特殊字符
正则表达式中有一些特殊的字符需要转义,收集整理如下: 特殊字符         说明 $ 匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 ‘\n' 或 ‘\r'。要匹配 $ 字符本身,请使用 \$。 ( ) 标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 \( 和 \)。 * 匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 \*。 + 匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 \+。 . 匹配
流柯
2018/08/31
4.3K0
HTML-HTML中的特殊字符
HTML中常用的特殊字符: 本文中的特殊字符持续收集中... HTML源代码 显示结果 描述 < < 小于号或显示标记 > > 大于号或显示标记 & & 可用于显示其他特殊字符 " " 引号 ® ® 已注册 © © 版权 ™ &trade 商标 &ensp 半个空格位 &emsp 一个空格位 不断行的空格位 ´ ´ ´ ´ > > µ µ ® ® & & ° ° ¡ ¡ » » ¦ ¦ ÷ ÷ ¿ ¿ ¬ ¬ § § • • ½ ½ « « ¶ ¶ &nml; &nml;
白衣少年
2023/01/08
6.5K0
点击加载更多

相似问题

包含特殊字符的url请求的json解码

33

URL解码特殊字符-

11

包含特殊字符和IE的Url参数值

10

Swift中具有特殊字符的URL解码

26

Url包含特殊字符

22
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档