Дизайн файла типа ввода CakePHP 3

Я хочу установить диапазон перед файлом типа ввода. Вот мой существующий код.

<?= $this->Form->input('logo', ['onchange'=>'onFileImage(this);',
                                'label' => false,
                                'type' => 'file',
                                'class'=>'']);?>
<lable class="inva_img"></lable>

Я хочу, чтобы результат напоминал приведенный ниже код.

<span class="btn btn-default btn-file">
  <span>Choose file</span>
  <input type="file" name="logo" id="logo" onchange="onFileImage(this);" />
</span>

person Lemon Kazi    schedule 06.04.2016    source источник
comment
Похоже на stackoverflow.com/questions/29686111   -  person fafl    schedule 06.04.2016
comment
@AlimonKarim да, это на CakePHP.   -  person Lemon Kazi    schedule 06.04.2016
comment
Пожалуйста, укажите вашу версию, какую версию вы используете?   -  person Alimon Karim    schedule 06.04.2016
comment
@AlimonKarim cakephp 3   -  person Lemon Kazi    schedule 06.04.2016


Ответы (4)


Вы можете сделать это по коду ниже

<?php  
    echo $this->Form->input('logo', [
            'templates' => [
                'inputContainer' => '<span class="input file required btn btn-default input {{type}}{{required}}"><span>Choose file</span>{{content}}</span>',
            ],
            'onchange'=>'onFileImage(this);',
            'class' => 'form-control',
            'type' => 'file',
            'label' => false
    ]);
?>

Подробнее см. ndm ans.

person Alimon Karim    schedule 06.04.2016
comment
Спасибо, ваш ответ ок. Мне нужно немного больше предложений, прежде чем применять ваш код, он выглядит как screencast.com/t/r3oAjluv4 после его применения. отображается screencast.com/t/Iujh3YG6Ig. Можете ли вы предложить мне, как я могу это получить? - person Lemon Kazi; 06.04.2016
comment
Это после кнопки выбора файла? Я думаю, вы можете пропустить эхо. проверьте, добавили ли вы код ‹?= ?› или ‹?php echo ..... ?› - person Alimon Karim; 06.04.2016
comment
Я добавил эхо и ‹?php ?›, но никаких улучшений. Не отображается ни один выбранный файл - person Lemon Kazi; 06.04.2016
comment
Ой ! понял !! просто измените свой класс span ‹span class=input file required btn btn-default› Я думаю, теперь вы получите желаемый результат. - person Alimon Karim; 06.04.2016

<span class="btn btn-default btn-file">
  <span>Choose file</span>
  <input type="file" name="logo" id="logo" onchange="onFileImage(this);" />
</span> 

Просто замените поле тега <input> стандартным для cakephp, оставив код без изменений. Вот преобразование:

   <span class="btn btn-default btn-file">
                <span>Choose file</span>
                <?php
                echo $this->Form->input(
                        'logo', array(
                    'id' => 'logo',
                    'type' => 'file',
                    'onchange' => 'onFileImage(this);'
                        )
                );
                ?>
            </span> 
person Abdus Sattar Bhuiyan    schedule 06.04.2016

попробуйте варианты до/после

echo $this->Form->input('field_name', array(
    'before' => '-before-',
    'after' => '-after-',
    'between' => '-between-'
));

подробнее об этом читайте в книге cakephp.

person Ahmed_Ali    schedule 06.04.2016

попробуйте это для cakephp2:

<?php
 $this->Form->input('logo', ['onchange'=>'onFileImage(this);',
                                  'label' => false,
                                  'before' => '<span class="btn btn-default btn-file"><span>Choose file</span>',
                                  'after' => '</span>',

                                  'type' => 'file',
                                  'class'=>'']);

Я надеюсь, что есть аналогичная концепция для cakephp3

ХТН.

person Faiyaz Alam    schedule 06.04.2016