私はケーキのPHP 3.0を使ってアプリケーションを開発しています。ユーザーが自分の詳細を編集しようとすると、フォームが複数回送信されると、成功のフラッシュメッセージが複数回表示されます。私はケーキのPHPフォームビルダを使用しています。ここに私のコードケーキのPHPでの複数フォーム提出3.0
<?= $this->Form->create('Project'); ?>
<?= $this->Html->link(' キャンセル 編集', array('action' => 'view', $project['id']), array('class' => 'btn btn-default pull-right', 'style' => 'margin: 5px 14px 0 0', 'rule' => 'button')); ?>
<?= $this->Form->button(__(' 保存 '), array('class' => 'btn btn-default pull-right', 'style' => 'margin: 5px 14px 0 0 ', 'id' => 'edit', 'onsubmit'=> 'disable()')); ?>
<h3 style="font-weight:bold; padding-left:10px; margin: 10px 0 20px;"> 案件基本情報 </h3>
<section id="unseen">
<div class="col-sm-12" role="complementary">
<div class="panel panel-default" >
<div class="panel-body table-responsive" style ="padding:0px !important">
<table class="table table-bordered table-condensed f11 table-nowrap " style ="margin:0px; ">
<tbody>
<tr>
<td width="23%" class="numeric cell-bg">案件ID</td>
<td class="numeric">
<?php if ($project['survey_status'] == $this->Comm->DbConst('PROJECT_SURVEY_STATUS_NEW')) { ?>
<?= $this->Form->input('survey_id', array('type' => 'text', 'class' => 'form-control', 'required' => true, 'label' => false, 'value' => __($project['survey_id']))) ?> <div style="color:red;"><?php
if (!empty($errors['survey_id'])) {
echo reset($errors['survey_id']);
}
?></div></td>
<?php } else { ?>
<?= $this->Form->input('survey_id', array('type' => 'text', 'class' => 'form-control', 'required' => false, 'label' => false, 'disabled' => true, 'value' => __($project['survey_id']))) ?> </td>
<?php } ?>
<td width="30%" colspan="2" class="numeric cell-bg">運用者名</td>
</tr>
<tr>
<td class="numeric cell-bg">案件名</td>
<td class="numeric"><?= $this->Form->input('title', array('type' => 'text', 'class' => 'form-control', 'required' => true, 'label' => false, 'value' => __($project['title']))) ?> <div style="color:red;"><?php
if (!empty($errors['title'])) {
echo reset($errors['title']);
}
?></div></td>
<td colspan="2" rowspan="3" class="numeric">
<div class="selectRow">
<select class="operator form-control" style="max-width:100%; " name="operator[]" data-placeholder="運用者選択" multiple required >
<?php foreach ($operators as $operator) { ?>
<option value=<?php
echo $operator['id'] . ":" . $operator['username'];
?> selected><?php echo h($operator['username']); ?></option>
<?php } ?>
</select>
<div style="color:red;"><?php
if (!empty($errors['operator'])) {
echo reset($errors['operator']);
}
?></div>
</div>
</td>
</tr>
<tr>
<td colspan="2" class="numeric cell-bg"><strong>顧客情報</strong></td>
</tr>
<tr>
<td class="numeric cell-bg">会社名</td>
<td class="numeric"><?= $this->Form->input('company_name', array('type' => 'text', 'class' => 'form-control', 'required' => true, 'label' => false, 'value' => __($project['company_name']))) ?> <div style="color:red;"> <?php
if (!empty($errors['company_name'])) {
echo reset($errors['company_name']);
}
?></div></td>
</tr>
<tr>
<td class="numeric cell-bg">部署名</td>
<td class="numeric"><?= $this->Form->input('department_name', array('type' => 'text', 'class' => 'form-control', 'required' => true, 'label' => false, 'value' => __($project['department_name']))) ?> <div style="color:red;"><?php
if (!empty($errors['department_name'])) {
echo reset($errors['department_name']);
}
?></div></td>
<td colspan="2" class="numeric cell-bg">参照者 </td>
</tr>
<tr>
<td class="numeric cell-bg">管理者氏名</td>
<td class="numeric"><?= $this->Form->input('name', array('type' => 'text', 'class' => 'form-control', 'required' => true, 'label' => false, 'value' => __($project['name']))) ?><div style="color:red;"> <?php
if (!empty($errors['name'])) {
echo reset($errors['name']);
}
?></div></td>
<td colspan="2" rowspan="3" class="numeric">
<div class="selectRow">
<select class="viewer form-control" style="max-width:100%;" name="viewer[]" data-placeholder="参照者選択" multiple required >
<?php foreach ($viewers as $viewer) { ?>
<option value=<?php echo $viewer['id'] . ":" . $viewer['username']; ?> selected><?php echo h($viewer['username']); ?></option>
<?php } ?>
</select>
<div style="color:red;"><?php
if (!empty($errors['viewer'])) {
echo reset($errors['viewer']);
}
?></div>
</div>
</td>
</tr>
<tr>
<td class="numeric cell-bg">管理者アカウント</td>
<td class="numeric"><?= $this->Form->input('air_id', array('type' => 'text', 'class' => 'form-control', 'required' => true, 'label' => false, 'value' => __($project['air_id']))) ?> <div style="color:red;"><?php
if (!empty($errors['air_id'])) {
echo reset($errors['air_id']);
}
?></div></td>
</tr>
<tr>
<td class="numeric cell-bg">管理者メールアドレス</td>
<td class="numeric"><?= $this->Form->input('email', array('type' => 'email', 'class' => 'form-control', 'required' => true, 'label' => false, 'value' => __($project['email']))) ?><div style="color:red;"> <?php
if (!empty($errors['email'])) {
echo reset($errors['email']);
}
?></div></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
フォーム - >終わりです()?>複数の提出を防ぐために、どのように
。ケーキのPHPの機能を使用するか、他の方法を使用してください。私はcsrfコンポーネントをロードしようとしましたが、それは私のために働いていません。
フル形式のファイルまたはフルビューファイルを投稿してください。 – Aarrbee