【问题标题】:How to modify values of checkboxes in database and how to show checkboxes after submit button如何修改数据库中复选框的值以及如何在提交按钮后显示复选框
【发布时间】:2013-10-04 00:42:09
【问题描述】:

好的,第一个问题是“点击提交后如何显示复选框”。

我有一个在同一页面上显示用户名字段和复选框的代码。我想检查“用户名”是否在数据库中,然后显示带有选项的复选框,如果他们已经检查了选项,则显示它们以修改数据库上的记录。

我的代码是这样的。 (显示表单的表单,我不想只显示用户名字段,然后是复选框)。

<form name="form1" action="test3.php" method="post">
        <table width="100%" >

    Please enter your Username: <input type = "Text" value ="" name = "username"><br />

    Please select the category that you want to receive on your moval.edu e-mail account.<br /><br />
    <b>Athletics:</b><br><br />
    <b>MENS</b><br />

    <input type="checkbox" name="mode[]" id="mode" value="Football">Football<br>
    <input type="checkbox" name="mode[]" id="mode" value="Baseball">Baseball<br>
    <input type="checkbox" name="mode[]" id="mode" value="Mens Basketball">Basketball<br>
    <input type="checkbox" name="mode[]" id="mode" value="Mens Cheer">Cheer<br>
    <input type="checkbox" name="mode[]" id="mode" value="Mens Cross Country">Cross Country<br>
    <input type="checkbox" name="mode[]" id="mode" value="Mens Golf">Golf<br>
    <input type="checkbox" name="mode[]" id="mode" value="Mens Lacrosse">Lacrosse<br>
    <input type="checkbox" name="mode[]" id="mode" value="Mens Rodeo">Rodeo<br>
    <input type="checkbox" name="mode[]" id="mode" value="Mens Soccer">Soccer<br>
    <input type="checkbox" name="mode[]" id="mode" value="Mens Tennis">Tennis<br>
    <input type="checkbox" name="mode[]" id="mode" value="Mens Track">Track<br>
    <input type="checkbox" name="mode[]" id="mode" value="Mens Volleyball">Volleyball<br>
    <input type="checkbox" name="mode[]" id="mode" value="Mens Wrestling">Wrestling<br><br />

    <b>WOMENS</b><br />
    <input type="checkbox" name="mode[]" id="mode" value="Womens Basketball">Basketball<br>
    <input type="checkbox" name="mode[]" id="mode" value="Womens Cheer">Cheer<br>
    <input type="checkbox" name="mode[]" id="mode" value="Womens Cross Country">Cross Country<br>
    <input type="checkbox" name="mode[]" id="mode" value="Dance">Dance<br>
    <input type="checkbox" name="mode[]" id="mode" value="Womens Golf">Golf<br>
    <input type="checkbox" name="mode[]" id="mode" value="Womens Lacrosse">Lacrosse<br>
    <input type="checkbox" name="mode[]" id="mode" value="Womens Rodeo">Rodeo<br>
    <input type="checkbox" name="mode[]" id="mode" value="Womens Soccer">Soccer<br>
    <input type="checkbox" name="mode[]" id="mode" value="Softball">Softball<br>
    <input type="checkbox" name="mode[]" id="mode" value="Womens Tennis">Tennis<br>
    <input type="checkbox" name="mode[]" id="mode" value="Womens Track">Track<br>
    <input type="checkbox" name="mode[]" id="mode" value="Womens Volleyball">Volleyball<br>
    <input type="checkbox" name="mode[]" id="mode" value="Womens Wrestling">Wrestling<br><br />

    <b>STUDENT AFFAIRS ACIVITIES</b><br><br />
    <input type="checkbox" name="mode[]" id="mode" value="Student Affairs"> Sign me up for Student Affairs Activities<br /><br />

    <b>INTERNAIONAL CLUB ACTIVITIES</b><br /><br />
    <input type="checkbox" name="mode[]" id="mode" value="International Club"> Sign me up for International Club Activities<br /><br />

    <b>HISTORICAL ACTIVITIES</b><br><br />
    <input type="checkbox" name="mode[]" id="mode" value="Historical Activities"> Sign me up for Hisorical Activities<br /><br />

    <b>CONTESTS</b><br><br />
    <input type="checkbox" name="mode[]" id="mode" value="Contests"> Sign me up for Contests<br /><br />

    <b>LIBRARY EVENTS</b><br><br />
    <input type="checkbox" name="mode[]" id="mode" value="Library Events"> Sign me up for Library Evens<br /><br />

    <b>VIKING EXCHANGE</b><br /><br />
    <input type="checkbox" name="mode[]" id="mode" value="Viking Exchange"> Sign me up for Viking Exchange News<br /><br />


</table>





<input name="cmd_submit" type="submit" id="submit" value="Submit" />

</form>

这里是动作。

<?php
if(isset($_POST['mode'])) {
$mode = implode(",", $_POST['mode']);   
} else {
$mode = "";
}
?>


<?php
$dbhost  = 'localhost';
$dbname  = 'db_name';
$dbuser  = 'username';
$dbpass  = 'pass'; 

$con = mysql_connect($dbhost, $dbuser, $dbpass);

if($con == FALSE)
{
    echo 'Cannot connect to database' . mysql_error();
}
else
{
    echo 'Connected to database';
}

mysql_select_db($dbname, $con);
// Get values from form 
$username = mysql_escape_string($_POST['username']);

$sql="INSERT INTO email(username, mode) VALUES('$username', '$mode')";
$result=mysql_query($sql);

if (!mysql_query($sql, $con))
{
    die('Error: ' . mysql_error());
}
echo "1 record added";

mysql_close($con)
?>

提前致谢。

【问题讨论】:

  • 您必须了解id 必须是唯一的这一事实。多个元素不能用相同的 id 标识。
  • 是的,我的数据库中有 ID。问题是我希望该 ID(除了是唯一的)显示他们已经检查过的内容,如果他们想取消选中某些内容,请将其保存回来。但是,如何使用分配的用户名和检查的选项检查该 ID?谢谢

标签: php sql forms checkbox


【解决方案1】:

使用checked="checked" 默认选中复选框。

【讨论】:

  • 请说明。我把它放在哪里。但这不是我问题的答案。
【解决方案2】:

在开始表单之前,打开一个 while 循环,从数据库中选择已选择的复选框字段。并检查如下所示的条件是否等于表单中的复选框。如果是这样,请将其设为选中。示例如下:

    $result=mysql_query("SELECT checkbox_fields FROM table_name");
    while($row=mysql_fetch_assoc($row))
    {



  <input type="checkbox" name="football" id="football" value="football" <?php echo ($row['checkbox_fields']==football ? 'checked' : '');?>>Footbal<br>

     <input type="checkbox" name="baseball" id="baseball" value="baseball" <?php echo ($row['checkbox_fields']==baseball ? 'checked' : '');?>>Baseball<br>
etc...

    }

【讨论】:

  • 问题是复选框不在数据库中,只是复选框的值显示在数据库中,用逗号分隔。而且在数据库中为每个复选框创建一个字段太多了。
  • 您必须比较数据库中复选框的值,这就是我的意思。存储用逗号分隔的值不是一个好习惯。为了使它检查你必须做我之前发布的内容。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-13
  • 2015-10-14
  • 2023-03-28
  • 2014-05-13
  • 2021-11-13
  • 1970-01-01
  • 2017-09-30
相关资源
最近更新 更多