简体   繁体   English

如果值等于1,尝试显示已选中的复选框

[英]Trying to display checked in check box if value equal 1

basically im trying to display a check mark ,if value in database is equal to 1 i want the checkbox to be checked and if its equal 0 display an empty checkbox! 基本上我试图显示一个复选标记,如果数据库中的值等于1,我希望选中该复选框,如果其等于0,则显示一个空的复选框!

$sql_works="SELECT task.taskId, task.adminId, task.taskName, task.day, task.month, task.year, task.taskText,task.checkMark FROM task INNER JOIN administrator ON administrator.id = task.adminId Where taskId =" . $_GET['id'];         

                $result_works = mysql_query( $sql_works )or die("error");


                if ( !$result_works  ) 
                {
                    die ('Query Error, Please try again later ...');
                }

                $nb_works = mysql_num_rows ( $result_works );

                if ($nb_works > 0 ){
                    $row_works = mysql_fetch_assoc ($result_works);
    $checkmark= "$row_works['checkMark']";

    <input type="checkbox" name="checkbox" checked = "<?php echo $row_works['checkMark'];?>" /> <label for="custom">Task done!</label>

Heres my Database: 这是我的数据库:

    -- Dumping database structure for workspacedb
    CREATE DATABASE IF NOT EXISTS `workspacedb` /*!40100 DEFAULT CHARACTER SET latin1 */;
    USE `workspacedb`;


    -- Dumping structure for table workspacedb.task
    CREATE TABLE IF NOT EXISTS `task` (
      `taskId` int(10) unsigned NOT NULL AUTO_INCREMENT,
      `adminId` int(10) unsigned NOT NULL,
      `taskName` varchar(50) DEFAULT NULL,
      `day` tinyint(4) NOT NULL,
      `month` varchar(50) NOT NULL,
      `year` smallint(6) NOT NULL,
      `taskText` text,
      `checkmark` tinyint(1) DEFAULT NULL,
      PRIMARY KEY (`taskId`),
      KEY `FK_task_administrator` (`adminId`),
      CONSTRAINT `FK_task_administrator` FOREIGN KEY (`adminId`) REFERENCES `administrator` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
    ) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=latin1;

    -- Dumping data for table workspacedb.task: ~7 rows (approximately)
    /*!40000 ALTER TABLE `task` DISABLE KEYS */;
    INSERT INTO `task` (`taskId`, `adminId`, `taskName`, `day`, `month`, `year`, `taskText`, `checkmark`) VALUES
        (3, 21, 'task1', 6, '1', 2015, 'this is a test task 1', 0),
        (5, 21, 'comptask', 5, '4', 2014, 'this is a completed task', 1),
        (7, 21, 'tasss', 4, '3', 2015, '', 0),
        (8, 20, 'taaa', 2, '1', 2014, 'jjjjjj', 0),
        (9, 22, 'task1212', 1, '2', 2015, 'jjjjj', 0),
        (10, 21, 'task4', 1, '12', 2015, 'skksksmnd, cs cdnms cdn ms cds dcm sdc', 1),
        (11, 22, 'task22', 4, '1', 2014, 'testttstststststtstZL  awsidpoiawjde  awed i0owde r0ju qewdr 0qweurd woqej fdoqe fdoqe oijqeddij qe', 0);
    /*!40000 ALTER TABLE `task` ENABLE KEYS */;
    /*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */;
    /*!40014 SET FOREIGN_KEY_CHECKS=IF(@OLD_FOREIGN_KEY_CHECKS IS NULL, 1, @OLD_FOREIGN_KEY_CHECKS) */;
    /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
<?php $isChecked = $row_works['checkMark'] == 1 ? 'checked="checked"' : null; ?>
<input type="checkbox" name="checkbox" <?= $isChecked;?> /><label for="custom">Task done!</label>

Proper syntax for checked inupt would be 检查inupt的正确语法是

<input type="checkbox" checked="checked" name="myCheckbox" />

So the php code would be 所以PHP代码将是

<input type="checkbox" <?php if ($row_works['checkMark'] == 1) { 'checked="checked"'; } ?>  name="myCheckbox" />

Right. 对。 I find this is easier to read: 我发现这更容易阅读:

<?php
$sChecked = "";
if ($row_works['checkMark'] == 1) {
    $sChecked = ' checked="checked"';
}
?>
<input type="checkbox" <?=$sChecked?>  name="myCheckbox" />

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM