dropBox не виден в форме — CakePHP-AjaxMultiUpload

Я использую CakePHP-AjaxMultiUpload Плагин, и иметь следующий код внутри edit.ctp но выпадающий список здесь не виден.

<div class="useTypes form">

<?php echo $this->Form->create('UseType'); ?>

<fieldset>
<legend><?php echo __('Edit Use Type'); ?></legend>
<?php
echo $this->Form->input('id');
echo $this->Form->input('name');
echo $this->Form->input('description');
echo $this->Upload->edit('UseType', $this->Form->fields['UseType.id']);
?>
</fieldset>

<?php
echo $this->Form->end(__('Submit')); ?>
</div>

но когда я использую только следующий код, это видно

<?php echo $this->Upload->edit('UseType', $this->Form->fields['UseType.id']);?>

Я пробовал это в CakePHP 2.6 с темой по умолчанию.

1

Решение

Вы не должны оборачивать $this->Upload->edit() внутри <form> тег, так как он уже создает свою собственную форму.

Вам также может понадобиться заменить:

$this->Form->fields['UseType.id']

с:

$this->Form->value('UseType.id')

Таким образом, это должно работать:

<?php echo $this->Form->create('UseType'); ?>
<fieldset>
<legend><?php echo __('Edit Use Type'); ?></legend>
<?php
echo $this->Form->input('id');
echo $this->Form->input('name');
echo $this->Form->input('description');
?>
</fieldset>
<?php echo $this->Form->end(__('Submit')); ?>

<?php echo $this->Upload->edit('UseType', $this->Form->value('UseType.id'));?>

редактировать

Если вам нужно загрузить файлы на свой /use_types/add просмотр, вы можете сделать следующее.

В UseTypeController::add() включают:

$this->set('id',CakeText::uuid()); //String::uuid() for CakePHP 2.6 or lower

И в /app/View/UseTypes/add.ctp:

<?php echo $this->Form->input('id',array('type' => 'hidden', 'value' => $id)); ?>

Недостатком является то, что если вам не удастся сохранить вашу модель после загрузки файлов через AJAX, они останутся сиротами.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]