2

我正在尝试做一些我觉得很愚蠢的事情,而且我敢肯定这很简单。但是,我很难在网上找到任何明确的例子。我试过修改 div 和 css,但无济于事。

谁能给我一个清晰的例子,说明如何在 Cactive 表单的同一行上拥有 2 个或多个表单字段,以创建新模型,而不是每行上的默认字段。

任何帮助将不胜感激!!

我尝试过 form = 'wide form'

但我得到了奇怪的格式,就像这里的例子一样:http: //imgur.com/E5VVs

4

3 回答 3

1

假设这是你的表格(取自 Yii 文档)

<?php $form = $this->beginWidget('CActiveForm', array(
    'id'=>'user-form',
    'enableAjaxValidation'=>true,
    'enableClientValidation'=>true,
    'focus'=>array($model,'firstName'),
)); ?>

<?php echo $form->errorSummary($model); ?>

<div class="row">
    <?php echo $form->labelEx($model,'firstName'); ?>
    <?php echo $form->textField($model,'firstName'); ?>
    <?php echo $form->error($model,'firstName'); ?>
</div>
<div class="row">
    <?php echo $form->labelEx($model,'lastName'); ?>
    <?php echo $form->textField($model,'lastName'); ?>
    <?php echo $form->error($model,'lastName'); ?>
</div>

<?php $this->endWidget(); ?>

您可以使用根据页面宽度构建的默认蓝图将其拆分为 2 列,例如

<?php $form = $this->beginWidget('CActiveForm', array(
    'id'=>'user-form',
    'enableAjaxValidation'=>true,
    'enableClientValidation'=>true,
    'focus'=>array($model,'firstName'),
)); ?>

<?php echo $form->errorSummary($model); ?>

<div class="row">
    <div class="span-8">
        <?php echo $form->labelEx($model,'firstName'); ?>
        <?php echo $form->textField($model,'firstName'); ?>
        <?php echo $form->error($model,'firstName'); ?>
    </div>

    <div class="span-8 last">
        <?php echo $form->labelEx($model,'lastName'); ?>
        <?php echo $form->textField($model,'lastName'); ?>
        <?php echo $form->error($model,'lastName'); ?>
    </div>
</div>

<?php $this->endWidget(); ?>

您可以在网络上的大量地方熟悉蓝图 css 或一般 css 规则。抱歉,如果没有看到您的代码,我无法提供更多帮助。如果已经有一个内置的神奇解决方案,也许其他人知道?

于 2012-07-19T16:42:09.917 回答
0

对于以下示例:

<div class="row">
    <?php echo $form->labelEx($model,'firstName'); ?>
    <?php echo $form->textField($model,'firstName'); ?>
    <?php echo $form->error($model,'firstName'); ?>
</div>
<div class="row">
    <?php echo $form->labelEx($model,'lastName'); ?>
    <?php echo $form->textField($model,'lastName'); ?>
    <?php echo $form->error($model,'lastName'); ?>
</div>

您需要做的就是设置更改一点 css

.row {
    width:200px;  /* or whatever you prefer */
    float:left;
}

请记住,clear:left在完成浮动元素或其他元素之后可能会奇怪地包裹。

您还可以使用:

.row {
    width:200px;  /* or whatever you prefer */
    display:inline-block;
}

这会有所不同,但对您来说可能是更好的选择。浮动时,您的行将保留在 dom 结构中,但可能会产生意想不到的结果。尝试两者,看看你想出了什么。

于 2013-01-24T00:16:47.857 回答
0

只需将 CSS 类更改为“列”而不是 div 之前的“行”,然后再放在同一行上。

示例: 要更改以下四行 div ...

   <div class="row"> ... </div>
   <div class="row"> ... </div>
   <div class="row"> ... </div>
   <div class="row"> ... </div>

分成三个并排放置的 div,最后一个 div 在新行上,只需执行以下操作:

   <div class="column"> ... </div>
   <div class="column"> ... </div>
   <div class="row"> ... </div>
   <div class="row"> ... </div>

还是我完全误解了这个问题......

于 2015-05-15T00:04:17.613 回答