Scriptbaker
SCRIPTBAKERAI & Software Engineering
Yii

How to make Yii checkBoxList selected

Learn how to preselect previously saved checkboxes in Yii 1.1 using CHtml::checkBoxList() and a MANY_MANY relationship. This guide explains how to retrieve selected book IDs and display them as checked when updating an author’s record.

· 5 min read · By Tahir Yasin

Many people find it hard to make the Yii checkBoxList selected on update view, but believe me in fact its very easy and straight forward. This post will help you in showing user’s last selection by showing them a preselected checkbox list.

Need help? You can Email me or Skype chat

I Suppose you have created a MANY_MANY relation as given below.

Book Model:

 'authors' => array(self::MANY_MANY, 'Author', 'authorbook(book_id,author_id)'), 

Author Model:

 'books' => array(self::MANY_MANY, 'Book', 'authorbook(author_id, book_id)'), 

Note: authorbook is the table name containing ids

Make a selected checkBoxList

 $books = CHtml::listData(Book::model()->findAll(), 'id', 'name'); $selected_keys = array_keys(CHtml::listData( $model->books, 'id' , 'id')); echo CHtml::checkBoxList('Author[books][]', $selected_keys, $books); 

checkBoxList function is taking three parameters.

  • Field name
  • Array of models ids those were previously selected
  • Options data

2nd parameter is important here, because it makes the checkBoxList selected.

Work with Scriptbaker

Let's talk about your project

Whether you're extending an existing platform, modernising legacy code, or planning something new, our engineers can help. Tell us what you're working on and we'll explore a practical technical solution together.