- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这里,我有两个表:tbl_checklist 和 tbl_stud_checklist。一旦我在 tbl_checklist 中添加新数据,该项目将成为 tbl_stud_checklist 中的另一列。
tbl_checklist:
+---------------------------+
| id | Checklist |
+---------------------------+
| 1 | Medical Certificate |
| 2 | Evaluation Form |
| 3 | Application Form |
+---------------------------+
tbl_stud_checklist:
+----------------------------------------------------------------+
| id | Medical Certificate | Evaluation Form | Application Form |
+----------------------------------------------------------------+
| 1 | 0 | 0 | 0 |
+----------------------------------------------------------------+
然后,我将检索 tbl_stud_checklist 中的所有数据字段作为复选框,一旦选中,该检查将被保留并将其值更改为 1。希望你能帮助我离开这里。我进行了很多搜索并尝试了很多教程,但仍然出错。
代码:
<html>
<form action='' method='post'>
<?php
$database = 'sample';
$table = 'tbl_stud_checklist';
$mysql = mysql_connect('localhost', 'root', '') or die(mysql_error());
mysql_select_db('sample', $mysql) or die(mysql_error($mysql)); // selecting db is not not necessary in this case
$query = sprintf("
SELECT
COLUMN_NAME, COLUMN_TYPE
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_SCHEMA = '%s'
AND TABLE_NAME = '%s'
",
mysql_real_escape_string($database),
mysql_real_escape_string($table)
);
$result = mysql_query($query, $mysql) or die(mysql_error($mysql));
while( false!=($row=mysql_fetch_array($result)) ) {
$name = htmlspecialchars($row['COLUMN_NAME']);
$type = htmlspecialchars($row['COLUMN_TYPE']);
printf("<input type=\"checkbox\" name=\"col[]\" value=\"%s\" />%s (%s)<br />\r\n", $name, $name, $type);
}
?>
<tr><td colspan="2"><input type="submit" name="submit" value="Update Privileges" /></td></tr>
</form>
</html>
最佳答案
不确定您的 $type
值是什么,但尝试一下,看看它是否适合您:
<html>
<form action='' method='post'>
<?php
$database = 'sample';
$table = 'checklist_stud_columns';
// assuming user_id as 1, you may have to write up more code on
// how you are fetching this value
$user_id = 1;
$mysql = mysql_connect('localhost', 'root', '') or die(mysql_error());
mysql_select_db('sample', $mysql) or die(mysql_error($mysql)); // selecting db is not not necessary in this case
$query = sprintf("
SELECT
COLUMN_NAME,
COLUMN_TYPE
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_SCHEMA = '%s'
AND TABLE_NAME = '%s'
",
mysql_real_escape_string($database),
mysql_real_escape_string($table)
);
$result = mysql_query($query) or die(mysql_error());
$name = array();
$type = array();
while( false!=($row=mysql_fetch_array($result)) ) {
//saving the column name and type in array
//because it's used in multiple places
//and we don't want to run the same query again
if(htmlspecialchars($row['COLUMN_NAME'])!='checklist_id'){
$name[] = htmlspecialchars($row['COLUMN_NAME']);
$type[] = htmlspecialchars($row['COLUMN_TYPE']);
}
}
if(isset($_POST['submit'])) {
//We need to check if the user id already exists
//in the table, if it does, we will UPDATE,
//else INSERT a new record
$action = '';
$sql = mysql_query("SELECT * FROM {$table} WHERE checklist_id={$user_id}");
//if record for the user id is found, update action
//should take place else insert
$action = (mysql_num_rows($sql)>0)?'update':'insert';
if($action=='insert'){
//INSERT INTO checklist_stud_columns(`id`
$query_insert = "INSERT INTO {$table}(`id`";
//INSERT INTO checklist_stud_columns(`id`,`col1`,`col2`
foreach($_POST['col'] as $val){
$query_insert .= ",`{$val}`";
}
//INSERT INTO checklist_stud_columns(`id`,`col1`,`col2`)
//VALES(1
$query_insert .= ") VALUES ({$id}";
//INSERT INTO checklist_stud_columns(`id`,`col1`,`col2`)
//VALES(1,1,1
foreach($_POST['col'] as $val){
$query_insert .= ",1";
}
//INSERT INTO checklist_stud_columns(`id`,`col1`,`col2`)
//VALES(1,1,1)
$query_insert .= ")";
//we have the insert query ready, now executing it
$result = mysql_query($query_insert) or die(mysql_error());
}
elseif($action=='update'){
if(isset($_POST['col'])){
//the reason I'm checking if the $_POST['col'] is set is because,
//you may have checked previously and updated but now you want to
//uncheck all the options, in that case it's necessary
foreach($_POST['col'] as $val){
//updating the checked values for that $user_id
$result = mysql_query("UPDATE checklist_stud_columns SET `{$val}`=1 WHERE checklist_id={$user_id}") or die(mysql_error());
}
//this foreach is to check if you have any unchecked values
//that you had previously checked
$array_unchecked = array_diff($name,$_POST['col']);
foreach($array_unchecked as $val){
$result = mysql_query("UPDATE checklist_stud_columns SET `{$val}`=0 WHERE checklist_id={$user_id}") or die(mysql_error());
}
}
else
{
foreach($name as $val){
$result = mysql_query("UPDATE checklist_stud_columns SET `{$val}`=0 WHERE checklist_id={$user_id}") or die(mysql_error());
}
}
}
if(isset($_POST['col'])){
//if you had checked atleast one checkbox
//display with it
foreach($name as $i=>$n){
//Displaying all the checkboxes
//setting checked value to 'checked' if it was checked
//else setting it to empty ''
$checked = in_array($n,$_POST['col'])?'checked':'';
echo "<input type=\"checkbox\" name=\"col[]\" value={$n} {$checked}/>{$n} $type[$i]<br />";
}
}
else {
foreach($name as $i=>$n){
echo "<input type=\"checkbox\" name=\"col[]\" value={$n} />{$n} $type[$i]<br />";
}
}
}
else{
foreach($name as $i=>$n){
//Another query that would tell us the value
//of that column for that $user_id
$query2 = mysql_query("SELECT {$n} FROM {$table} WHERE checklist_id={$user_id}") or die(mysql_error());
//$query2 = mysql_query("SELECT `{$n}` FROM {$table} WHERE checklist_id={$user_id}") or die(mysql_error());
if(mysql_num_rows($query2)!=0){
$row2 = mysql_fetch_array($query2);
//if the value of that column for that $user_id is 1,
//set 'checked' else 'empty'
$checked = ($row2[$n]==1)?'checked':'';
}
else
{
$checked = '';
}
//display all the checkboxes with
//the $checked value
echo "<input type=\"checkbox\" name=\"col[]\" value={$n} {$checked}/>{$n} $type[$i]<br />";
}
}
?>
<tr><td colspan="2"><input type="submit" name="submit" value="Update Privileges" /></td></tr>
</form>
</html>
Please, don't use mysql_*
functions in new code 。它们不再维护and are officially deprecated 。请参阅red box ?了解 prepared statements相反,并使用 PDO ,或MySQLi -this article将帮助您决定哪个。如果您选择 PDO,here is a good tutorial .
关于php - 将数据字段显示为复选框,保留选中的值并在选中时将值设置为 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22116211/
我对 Swift 比较陌生。我在 pickerView 中使用 PFQuery 时遇到了问题。 我正在尝试实现一个 2 组件 pickerView,如下所示: 组件 0:组件 1 “A”:“Altiv
packageUrl="http://192.168.0.112" packageUrl_line=`grep -n "packageUrl" ${file} | head -1 | cut -d "
我遇到了一个烦人的问题。我正在做一个消息传递应用程序。在消息页面中,当用户滚动到顶部时,一旦最上面的单元格可见,它将加载更多消息以显示。因为在加载更多消息时, TableView 的位置在顶部(内容偏
可以屏蔽吗 Jsoup.connect("http://xyz.com").get().html(); 作为对网站的浏览器调用? 我尝试构建一个壁纸下载工具,但在从服务器下载页面时遇到问题。 如果我下
IntelliJ 给了我以下代码的提示: val l = List(0, "1", 2, "3") l.foreach{_ match {case xx:Int => println(xx);case
我正在尝试读取使用三个水平点表示缺失值的 excel 文件,例如... https://population.un.org/wpp/Download/Files/1_Indicators%20(Sta
我有一个 NSPopupButton,其内容绑定(bind)到 NSArray,假设该数组是 @[ @"Option 1", @"Option 2" ]; 其选择的对象绑定(bind)
大家好,我希望您能回答这个问题:) 基本上,我的index.html中有一些html 5视频,并且会自动播放背景音频。 我想发生的是在播放视频标签时将背景音频减少到50%。如果可能的话,如果我可以使用
需要一点帮助来解决这个问题。我的目标是拥有一个可执行的 jar 文件,它可以截取网页的屏幕截图,并且可以在 Windows 和 Linux 机器上运行。我尝试过使用 html2image 但 phan
我知道如何将 comboBox 值插入到 sql 中,但不知道如何在 sql 中用数字替换 comboBox 值。 这是我的组合框编码和处理按钮的一部分。 用户.java JComboBox com
我有一个像这样的 XML 片段: WEL SMIO 01/01/2015 12/31/9999 AAE 01/01/2015
好的,我知道每个人都认为 IFrame 不好,我知道这一点。但我“被要求”在极少数情况下使用一个。 所以我的问题是,当您有一个包含 IFrame 的 .aspx 页面,然后在该 IFrame 中有另一
我有一个 React 应用程序,我在其中使用 axios 库来获取一些值,并将它们设置为处于我状态的 javascript 对象数组 componentDidMount(){ axios.
我必须存储我的 HashMap通过Spring data导入数据库MySql。为了从 HashMap 检索数据,我使用键值,并且可能会发生键不存在的情况,在这种情况下,我必须避免使用 set 方法将值
我有 Size 模型,其中 value 作为字符串。我想根据 value 属性通过将其转换为十进制来排序 size。 has_many :sizes, -> {order 'value ASC'},这
嗨,我有一个 MYSQL 表,例如 PART{ part_id :long,Auto Increment parent_part_id :long root_part_id :long } 我需
我正在尝试将列名为“邮政编码”、“2010 年人口”、“Land-Sq-Mi”和“每平方英里密度”的 CSV 文件导入我的测试表,该表名为 derp--这就是我在开头使用 drop 语句的原因,这样我
我想写一个这样的存储过程: CREATE OR REPLACE FUNCTION my_function(param_1 text, param_2 text DEFAULT NULL::text)
我有一个 RecyclerView,在它之上,有一个 AdView。滚动 RecyclerView 时,我想将 Adview 留在固定位置。我该怎么做? 这是我打开应用程序时的 RecyclerVie
我有一个 UIScrollView,其中包含一个 UIView 容器,该容器包含多个 UITextField。 我想执行以下操作:如果我选择一个字段并且它位于键盘下方,则将文本字段提升到键盘上方 20
我是一名优秀的程序员,十分优秀!