• Связать кнопку с


    Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.

    Ответить

    11 сообщений • Страница 1 из 1

    slavyan Сообщения: 5 Зарегистрирован: 2015.01.16, 21:23

    Связать кнопку с формой в Yii 2.

    Здравствуйте!
    Может кто-нибудь подсказать как в Yii2 связать кнопку с формой, когда кнопка не располагается внутри формы?
    Использовал атрибут "form", но не помогло:

    Код: Выделить всё

    <?php $form = связать кнопку с ActiveForm::begin(['id' => 'mod']);?> <?= $form->field($model, 'username')->textInput(['maxlength' => 128])?> <?= $form->field($model, 'mail')->textInput(['maxlength' => 128])?> <?php ActiveForm::end();?> <?= Html::submitButton('Submit!', ['class' => 'btn btn-primary', [b]'form' => 'mod'[/b]])?> Подскажите, может что-то не так делаю?

    Последний раз редактировалось slavyan 2015.01.16, 23:04, всего редактировалось 1 раз.

    Вернуться к началу

    Veysman Сообщения: 50 Зарегистрирован: 2015.01.11, 17:07

    Re: Связать кнопку с формой в Yii 2.

    • Цитата

    А в созданной странице атрибут 'action' формы 'mod' указывает в нужное вам место?

    Вернуться к началу

    slavyan Сообщения: 5 Зарегистрирован: 2015.01.16, 21:23

    Re: Связать кнопку с формой в Yii 2.

    • Цитата
    Проверил атрибут 'action' таким образом (не знаю правильно так делать или нет): В результате ничего на экран не вывелось. Тем не менее в коде, указанном ниже, всё работает, но = $form->action?> по-прежнему ничего не выводит.

    Код: Выделить всё

    <?php $form = ActiveForm::begin();?> <?= $form->field($model, 'username')->textInput(['maxlength' => 128])?> <?= $form->field($model, 'mail')->textInput(['maxlength' => 128])?> <?= Html::submitButton('Submit!', ['class' => 'btn btn-primary'])?> <?= $form->action?> <?php ActiveForm::end();?>

    Вернуться к началу

    Veysman Сообщения: 50 Зарегистрирован: 2015.01.11, 17:07

    Re: Связать кнопку с формой в Yii 2.

    • Цитата

    Посмотрите с помощью панели разработчика вашего браузера исходит ли куда либо запрос.
    Сам параметр экшн может быть не задан, тогда форма отправляет данные на тот экш, который вызвал её. Вы этот параметр в странице, что сгенерировлась гляньте, в дескрипторе(<form action="здесь">) вашей формы.

    Вернуться к началу

    slavyan Сообщения: 5 Зарегистрирован: 2015.01.16, 21:23

    Re: Связать кнопку с формой в Yii 2.

    • Цитата

    Veysman, да вы правы, "форма отправляет данные на тот экш, который вызвал её".

    Вернуться к началу

    Veysman Сообщения: 50 Зарегистрирован: 2015.01.11, 17:07

    Re: Связать кнопку с формой в Yii 2.

    • Цитата

    slavyan писал(а):Veysman, да вы правы, "форма отправляет данные на тот экш, который вызвал её".

    А вам туда надо или нет)?

    Вернуться к началу

    slavyan Сообщения: 5 Зарегистрирован: 2015.01.16, 21:23

    Re: Связать кнопку с формой в Yii 2.

    • Цитата
    Veysman писал(а):

    slavyan писал(а):Veysman, да вы правы, "форма отправляет данные на тот экш, который вызвал её".

    А вам туда надо или нет)? Да, да. В этом вся проблема.
    Например, я создаю модель User и контроллер UserController в gii. Автоматически создалась вьюшка _form, которая применяется для удаления или редактирования. Так вот, в этой вьюшке такой код:

    Код: Выделить всё

    <div class="table-form"> <?php $form = ActiveForm::begin();?> <?= $form->field($model, 'username')->textInput(['maxlength' => 128])?> <?= $form->field($model, 'mail')->textInput(['maxlength' => 128])?> <div class="form-group"> <?= Html::submitButton($model->isNewRecord? 'Create' : 'Update', ['class' => $model->isNewRecord? 'btn btn-success' : 'btn btn-primary'])?> </div> <?php ActiveForm::end();?> </div> и форма здесь отправляет данные на этот же самый "action". Или я чего-то не догоняю?
    Смотрел в браузере:
    "http://test.ru/web/index.php?r=user%2Fupdate&id=first" - то что в адресной строке;
    "/web/index.php?r=user%2Fupdate&id=first" - то что прописано в "action" у формы.

    Вернуться к началу

    Veysman Сообщения: 50 Зарегистрирован: 2015.01.11, 17:07

    Re: Связать кнопку с формой в Yii 2.

    • Цитата

    Да, именно на тот, который её рендерил. Для вашего примера, это действие user/update.
    Ещё эту форму может вызвать user/create. Тогда форма будет запрашивать post/create.

    Вернуться к началу

    slavyan Сообщения: 5 Зарегистрирован: 2015.01.16, 21:23

    Re: Связать кнопку с формой в Yii 2.

    • Цитата
    Прошу прощения за кипишь, всё так работает:

    Код: Выделить всё

    <?php $form = ActiveForm::begin(['id' => 'mod']);?> <?= $form->field($model, 'username')->textInput(['maxlength' => 128])?> <?= $form->field($model, 'mail')->textInput(['maxlength' => 128])?> <?php ActiveForm::end();?> <?= Html::submitButton('Submit!', ['name' => 'submit1', 'class' => 'btn btn-primary', 'form' => 'mod'])?> Проблема была в том, что я в контроллере делал такую проверку:

    Код: Выделить всё

    if(isset($_POST['submit1']) && $model->load(Yii::$app->request->post()) && $model->save()) И вот из-за этой проверки "isset($_POST['submit1'])" ничего не срабатывало. Мне нужно было проверять, что данные передаются именно после нажатия этой кнопки "submit1", но после привязки кнопки к форме этого делать уже не требуется.

    Вернуться к началу

    Veysman Сообщения: 50 Зарегистрирован: 2015.01.11, 17:07

    Re: Связать кнопку с формой в Yii 2.

    • Цитата
    Думаю, это лишнее: Метод load модели - проверяете на пустоту данные формы и присваивает их соответствующим полям модели, если там, конечно, что то есть, в этом запросе.

    Вернуться к началу

    Создано на основе phpBB® Forum Software © phpBB Limited
    Русская поддержка phpBB
    GZIP: Off

     


    Источник: http://yiiframework.ru/forum/viewtopic.php?t=21668


    Поделись с друзьями



    Рекомендуем посмотреть ещё:


    Закрыть ... [X]

    Связать кнопку с формой - HTML, CSS - Киберфорум Блестящая фольга для аппликации

    Связать кнопку с Связать кнопку с Связать кнопку с Связать кнопку с Связать кнопку с Связать кнопку с Связать кнопку с Связать кнопку с Связать кнопку с

    ШОКИРУЮЩИЕ НОВОСТИ


    art-poisk.ru