如果输入值 = 1,则 Zend Framework 2 选中复选框
Zend Framework 2 checked checkbox if input value = 1
我正在做一个基于 http://www.jasongrimes.org/2012/01/using-doctrine-2-in-zend-framework-2/ 的新模块,但我遇到了一个问题。如果值 = 1,如何选中复选框?
view/index.phtml
<?php
$title = 'Newsletter';
$this->headTitle($title);
?>
<h1>Newsletter</h1>
<p>Select users who are to receive the newsletter.</p>
<table class="table table-striped">
<tr>
<td width="80%"><strong>User_id</strong></td>
<td width="10%" align="center"><strong>Yes/No</strong></td>
</tr>
<?php foreach ($newsletters as $newsletter) : ?>
<tr>
<td><?php echo $this->escapeHtml($newsletter->user_id); ?></td>
<td align="center"><?php echo $this->escapeHtml($newsletter->wantNewsletter); ?> <input type="checkbox" name="wantNewsletter" value="<?php echo $this->escapeHtml($newsletter->wantNewsletter); ?>"></td>
</tr>
<?php endforeach; ?>
<tr>
<td colspan="2" align="right"><button>Zapisz</button></td>
</tr>
</table>
您不必担心选中复选框。它会自动为您完成,但为了使其正常工作,您必须先对其进行调整。
首先,您需要在表单中定义复选框:
final class SomeForm extends Form
{
public function __construct($name = null)
{
.....
// Add the checkbox here
$this->add(array(
'name' => 'wantNewsletter',
'type' => 'checkbox',
));
然后在模板中,你可以简单地渲染它:
echo $this->formRow($form->get('wantNewsletter'));
如果属性 wantNewsletter
的值为 1
,则复选框将被自动选中。
您拥有的另一个解决方案实际上是此任务的变通方法,只需在值为 1
.
时渲染 属性 即可完成
<input type="checkbox" name="wantNewsletter" value="<?php echo $newsletter->wantNewsletter); ?>" <?php echo $newsletter->wantNewsletter ? 'checked' : ''; ?>>
尽可能使用第一个解决方案,因为它更准确且更符合框架。
我正在做一个基于 http://www.jasongrimes.org/2012/01/using-doctrine-2-in-zend-framework-2/ 的新模块,但我遇到了一个问题。如果值 = 1,如何选中复选框?
view/index.phtml
<?php
$title = 'Newsletter';
$this->headTitle($title);
?>
<h1>Newsletter</h1>
<p>Select users who are to receive the newsletter.</p>
<table class="table table-striped">
<tr>
<td width="80%"><strong>User_id</strong></td>
<td width="10%" align="center"><strong>Yes/No</strong></td>
</tr>
<?php foreach ($newsletters as $newsletter) : ?>
<tr>
<td><?php echo $this->escapeHtml($newsletter->user_id); ?></td>
<td align="center"><?php echo $this->escapeHtml($newsletter->wantNewsletter); ?> <input type="checkbox" name="wantNewsletter" value="<?php echo $this->escapeHtml($newsletter->wantNewsletter); ?>"></td>
</tr>
<?php endforeach; ?>
<tr>
<td colspan="2" align="right"><button>Zapisz</button></td>
</tr>
</table>
您不必担心选中复选框。它会自动为您完成,但为了使其正常工作,您必须先对其进行调整。
首先,您需要在表单中定义复选框:
final class SomeForm extends Form
{
public function __construct($name = null)
{
.....
// Add the checkbox here
$this->add(array(
'name' => 'wantNewsletter',
'type' => 'checkbox',
));
然后在模板中,你可以简单地渲染它:
echo $this->formRow($form->get('wantNewsletter'));
如果属性 wantNewsletter
的值为 1
,则复选框将被自动选中。
您拥有的另一个解决方案实际上是此任务的变通方法,只需在值为 1
.
<input type="checkbox" name="wantNewsletter" value="<?php echo $newsletter->wantNewsletter); ?>" <?php echo $newsletter->wantNewsletter ? 'checked' : ''; ?>>
尽可能使用第一个解决方案,因为它更准确且更符合框架。