gpt4 book ai didi

CakePHP:具有不同 html 属性的多个复选框

转载 作者:行者123 更新时间:2023-12-05 01:07:55 25 4
gpt4 key购买 nike

这是情况:

我有 table stages具有以下结构

 | id              |  name                                         | editable|
-----------------------------------------------------------------------------
| open | Open | 1 |
| paysheet_review | Paysheet Submitted (Awaiting Office Approval) | 0 |
| to_pay | Paysheet Approved (Awaiting Payment) | 0 |
| paid | Paid | 1 |
| purgatory | Flip or Refund | 0 |
| closed | Deal Closed | 1 |
-----------------------------------------------------------------------------

我正在创建一个多复选框块

在 Controller 中
<?php $_stages = $this->Stage->find("list");?>

在 View 中
<?php echo $this->Form->input("stage", array("multiple" => "checkbox", "options" => $_stages));?>

它创建了以下 html
<div class="control-group">
<label class="control-label" for="DealStage">Stage</label>
<input type="hidden" value="" id="DealStage_" name="data[Deal][stage]">
<div class="controls">
<label class="checkbox"><input type="checkbox" id="DealStageOpen" value="open" name="data[Deal][stage][]">Open</label>
<label class="checkbox"><input type="checkbox" id="DealStagePaysheetReview" value="paysheet_review" name="data[Deal][stage][]">Paysheet Submitted (Awaiting Office Approval)</label>
<label class="checkbox"><input type="checkbox" id="DealStageToPay" value="to_pay" name="data[Deal][stage][]">Paysheet Approved (Awaiting Payment)</label>
<label class="checkbox"><input type="checkbox" id="DealStagesPaid" value="paid" name="data[Deal][stage][]">Paid</label>
<label class="checkbox"><input type="checkbox" id="DealStagePurgatory" value="purgatory" name="data[Deal][stage][]">Flip or Refund</label>
<label class="checkbox"><input type="checkbox" id="DealStageClosed" value="closed" name="data[Deal][stage][]">Deal Closed</label>
</div>
</div>

现在我想通过 editable从数据库列作为每个复选框的标题。
有什么办法可以创建一个 multiple checkbox在 CakePHP 中添加一个 title作为每个输入类型复选框的属性。这样我就可以使用 jQuerycheck OR uncheck只有可编辑的阶段。

最佳答案

生成单独的复选框
如果单个属性是在一次调用中生成的,则无法为复选框赋予单独的属性,但是单独生成每个复选框很容易实现。为此,请确保将阶段数据传递给 View :

// in Controller action
$stages = $this->Stage->find("all");
$this->set('stages', $stages);
在 View 中简单地迭代 $stages生成复选框的变量:
// in view file
foreach ($stages as $stage) {
$id = $stage['Stage']['id'];
$name = $stage['Stage']['name'];
$editable = $stage['Stage']['editable'];

echo $this->Form->input(
'Deal.stage.' . $id,
['value' => $id, 'label' => $name, 'type' => 'checkbox', 'data-editable' => $editable]
);
}
我不太了解你想用这个可编辑属性做什么 - 但要从 js 访问它,它将是:
// in js file
$('input[type=checkbox]'].each(function() {
var editable = $(this).data('editable');

...
});

关于CakePHP:具有不同 html 属性的多个复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17747981/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com