Пользователь пока ничего не рассказал о себе

Достижения

Все достижения (1)

Наибольший вклад в теги

Все теги (9)

Лучшие ответы пользователя

Все ответы (28)
  • Как правильно передать model в layout в yii2?

    @myphpscript
    public function run() {
    		
    		
    		return $this->render('callbackform', [
    			'model' => new Callback(),
    		]);
    	}


    в frontend/widgets/views делаете вьюшку с формой callbackform.php типа такой
    <?php
    use yii\helpers\Url;
    use yii\helpers\Html;
    use yii\widgets\ActiveForm;
    ?>
    
    <div id="callback">
        <?php $form = ActiveForm::begin([
    	    'id' => 'callback-form',
    	    'enableAjaxValidation' => true,
    	    'action' => Url::to(['site/callback']),
    	    'validationUrl' => Url::to(['site/callback']),
    	]); ?>
    	
            <?= $form->field($model, 'name')->textInput([
    			'placeholder' => 'Имя',
    		])->label(''); ?>
    		
    		<?= $form->field($model, 'phone')->textInput([
    			'placeholder' => 'Телефон',
    		])->label(''); ?>
    		
    		 <?= Html::submitButton('Отправить', ['class' => 'btn btn-primary']) ?>
    
        <?php $form->end(); ?>
    </div>


    в контроллере site/callback валидацию и отправку
    Ответ написан
    1 комментарий
  • Как записать массив в БД?

    @myphpscript
    но в БД записывается одно и то же значение (2498) во все поля.

    в bindParam переменная привязывается по ссылке. на момент excute последнее значение у $value = 2498, поэтому пихает по все поля именно его
    Ответ написан
    8 комментариев
  • Как в yii2 реализовать несколько последовательных форм через AJAX?

    @myphpscript
    Как вариант, можно создать класс (от yii\base\Model) со всеми нужными полями, на каждый шаг сделать сценарий с правилами валидации. В контроллере указываем нужный сценарий, делаем проверку, если ок сохраняем модель в сессию и выводим следующую форму. В след. шаге берем из сессии форму и делаем тоже самое. Можно без проблем вернуться к предыдущему шагу, введенные ранее данные будет загружены. На последнем делаем $model->save(), в котором сохраняем данные во все нужные таблицы. Обернуть в транзакцию лишнем не будет.
    Ответ написан
    Комментировать
  • Как сделать такой скрипт?

    @myphpscript
    ip? Так посчитаешь количество самих адресов, а не уникальных пользователей. С одного адреса может несколько человек зайти на твой сайт. Можно в куку писать, что пользователь кликнул.
    В любом случае, тебе надо ловить событие click по картинке и по ajax отправлять в php, а там уже ты пишешь в бд/файл или ip (если его нет) или просто +1 к счётчику (тут уже по кукам смотришь кликал ранее или нет).
    Ответ написан
    Комментировать