Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >当提交到数据库时,在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

复制
相关文章
PHP中如何跳出for循环
在PHP中,可以使用break关键字来跳出循环。当循环执行到break语句时,循环会被立即终止,程序控制权会跳转到循环外的下一条语句。
很酷的站长
2023/08/17
8110
PHP中如何跳出for循环
当公司倒闭时,你在干什么?
说出来你可能不信,松哥竟然也经历过公司倒闭的事!最近看到我 GitHub 上开源的 vhr 项目 star 数即将过3k,不禁想起做这个项目时候的事,刚过去一年多,依然历历在目。
江南一点雨
2019/05/07
6630
当公司倒闭时,你在干什么?
php使用zookeeper扩展,当zookeeper有节点挂掉时PHP会报错
公司网站用zookeeper 管理配置文件,php 用 zookeeper扩展 从ZK 获取配置文件,平时使用没问题。本周的时候监控脚本报警,有部分网页提示500错误,查看日志显示zk连接失败,telnet 各个zk节点,发现2个zk 节点当机,让OP启动zk节点,网站恢复正常。
conanma
2021/12/05
4380
当人们在讨论 ChatGPT 时,都在讨论什么
第一,ChatGPT 本质上没有脱离计算机的计算范畴,它只能也终将取代繁重重复、只依靠经验和知识的劳动和工作,它可以取代大部分行业的一部分人,包括程序员,但是无法取代所有程序员,也无法取代那些依靠智慧和灵感的工作,笔者在大厂待过一两年,相信所有大厂都一样,主要产品的代码由于历经多人维护、多次迭代、多向重构,其代码量随随便便几千万行甚至上亿计,这样一个庞然大物能够运行起来,除了优雅的架构设计,还有数不清的胶水,复杂度远超当下 ChatGPT 能够生成的 demo 代码,但是它还是能够有它用武之地,有记不清的 function 代码,它是个好帮手,因此更像是一个无限容量的代码字典。
月小水长
2023/03/02
5330
当人们在讨论 ChatGPT 时,都在讨论什么
当fork()遇上for循环~
注:这里使用sleep的原因是为了更好地显示。读者可以注释掉sleep,编译运行一下。
种花家的奋斗兔
2020/11/13
5960
当fork()遇上for循环~
SeLoadDriverPrivilege 在提权中的应用
我本想翻译学习一下,结果发现安全客已经有人翻译了,我也就没必要翻译了,就复现学习一下吧,顺便算是稍微补充下原文的内容,验证下提权风险。希望能对大家有所帮助。
信安之路
2018/08/08
2.4K0
SeLoadDriverPrivilege 在提权中的应用
当flex容器中包含absolute元素时
我们设置了justify-content: center;,不同机型显示区别如下:
celineWong7
2020/11/05
3.8K0
【PHP】当mysql遇上PHP
本文介绍了PHP和MySQL在Web开发中的重要性,并详细讲解了PHP和MySQL的基本语法、数据类型、操作符、流程控制、函数、数组、错误处理、面向对象、数据库、缓存、安全、性能和优化等方面的知识。
啦啦啦321
2018/01/03
5.9K0
【PHP】当mysql遇上PHP
php循环
do while循环 语法 $a=5;//初始化a的值 do{ ....执行语句 步入(自增或自减之类) } while(循环条件,满足进行,不满足结束); <?php $a=5;//初始化a的值。
十月梦想
2018/08/29
1.8K0
在nodejs中事件循环分析
在上一篇文章在chromev8中的JavaScript事件循环分析中分析到,在chrome中的js引擎是通过执行栈和事件队列的形式来完成js的异步操作。然而在node中,事件循环表现出的状态与浏览器中大致相同。不同的是node中有一套自己的模型。node中事件循环的实现是依靠的libuv引擎。我们知道node选择chrome v8引擎作为js解释器,v8引擎将js代码分析后去调用对应的node api,而这些api最后则由libuv引擎驱动,执行对应的任务,并把不同的事件放在不同的队列中等待主线程执行。 因此实际上node中的事件循环存在于libuv引擎中。
Yerik
2022/04/11
4.2K0
当黑客在用 Ping时,Ping 在偷摸做啥事儿?
打开 Wireshark,选取指定的网卡进行抓包,进行 ping 操作,在 A 电脑上 ping B 电脑的 IP。
入门笔记
2022/11/14
3420
当黑客在用 Ping时,Ping 在偷摸做啥事儿?
Android 当子线程执行完,提交到主线程工具类
/** * 在主线程中 执行代码 * * @param runnable */ public static void runOnUiThread(Runnable runnable) { // 如果在主线程中运行 直接运行 如果没有在 提交一个handler if (isRunUIThread()) { runnable.run(); } else { execu
Demo_Yang
2018/10/15
1.3K0
当数据量增加时,如何提升数据库性能?
高并发下数据库的一种优化方案:读写分离。就是一老主从复制的技术使得数据库实现数据复制多份,增加抵抗大量并发的得写能力。提升数据库的查询性能。以提高数据的安全性,
王小明_HIT
2020/09/03
2.2K0
当数据量增加时,如何提升数据库性能?
当AI泡沫破裂时……
很显然我们目前处于一个不稳定的状态。这到底是一场泡沫还是一次革命?答案是当然包含一点革命——深度神经架构所创造的实实在在的成功已经颠覆了视觉和语音识别领域,更通用的机器学习也已经有了大量真实世界用例。
刀刀老高
2018/07/24
3640
当AI泡沫破裂时……
很显然我们目前处于一个不稳定的状态。这到底是一场泡沫还是一次革命?答案是当然包含一点革命——深度神经架构所创造的实实在在的成功已经颠覆了视觉和语音识别领域,更通用的机器学习也已经有了大量真实世界用例。
机器之心
2018/07/26
3810
在 Git 中当更改一个文件名为首字母大写时
一般开发中在 Mac 上开发程序,并使用 Git 进行版本管理,在使用 React 编写 Component 时,组件名一般建议首字母大写。
山月
2021/01/04
1.8K0
PHP-循环
php中,一共提供了以下循环语句: while:只要指定的条件成立,则循环执行代码块(在不确定循环次数的情况下使用) do….while:首先执行一次代码块,然后再指定的条件成立时重复这个循环 for
行 者
2018/03/26
2.8K0
PHP-循环
2、如果明确知道循环多少次首先for循环,如要要循环到条件不成立为止选while或do-while
cwl_java
2020/03/26
2.8K0
点击加载更多

相似问题

当数据被提交到数据库时,PHP jQuery AJAX....reload就会下拉。

10

使用PHP提交到数据库

11

当使用Regex in for循环PHP时

10

当循环不工作时,PHP同时循环

14

在提交到php文件时获得405

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

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