schmunk42\giiant\helpers\SaveForm::jsFillForm PHP Method

jsFillForm() public static method

public static jsFillForm ( )
    public static function jsFillForm()
    {
        return '
    function fillForm(id){
        if (id=="0") return;

        var formData = JSON.parse(savedForms[id]);
        
        for (var filedName in formData) {
        
            var checkboxName = "[name=\'Generator["+formData[filedName]["name"]+"][]\']";
            if(jQuery(checkboxName).is(":checkbox")){
                $(checkboxName).each(function( index ) {
                    $(this).prop("checked", false);
                    var actualValue = new String($( this ).val());
                    actualValue = actualValue + "";
                    for (var i = 0; i < formData[filedName]["value"].length; i++) {
                        var formValue = new String(formData[filedName]["value"][i]);
                        if(actualValue == formValue){
                            $(this).prop("checked", true);
                            continue;
                        }
                    }
                });                
                continue;
            }
            
            var checkboxName = "[name=\'Generator["+formData[filedName]["name"]+"]\']";
            if(jQuery(checkboxName).is(":checkbox")){
                jQuery(checkboxName).prop("checked", false);
                
                $(checkboxName).each(function( index ) {
                    $(checkboxName).prop("checked", false);
                    if(formData[filedName]["value"] == 1){
                        $(checkboxName).prop("checked", true);
                    }
                });                
                continue;
            }
            
            var fieldId = "generator-" + filedName;
            if (jQuery("#" + fieldId).is("input") || jQuery("#" + fieldId).is("select")){
                jQuery("#" + fieldId).val(formData[filedName]["value"]);
                continue;
            }    
            

        }    
    }
        ';
    }

Usage Example

Ejemplo n.º 1
0
<?php

use schmunk42\giiant\helpers\SaveForm;
/*
 * @var yii\web\View
 * @var yii\bootstrap\ActiveForm                   $form
 * @var schmunk42\giiant\generators\crud\Generator $generator
 */
/*
 * JS for listbox "Saved Form"
 * on chenging listbox, form fill with selected saved forma data
 * currently work with input text, input checkbox and select form fields
 */
$this->registerJs(SaveForm::getSavedFormsJs($generator->getName()), yii\web\View::POS_END);
$this->registerJs(SaveForm::jsFillForm(), yii\web\View::POS_END);
echo $form->field($generator, 'savedForm')->dropDownList(SaveForm::getSavedFormsListbox($generator->getName()), ['onchange' => 'fillForm(this.value)']);
echo $form->field($generator, 'modelClass');
echo $form->field($generator, 'searchModelClass');
echo $form->field($generator, 'controllerClass');
echo $form->field($generator, 'baseControllerClass');
echo $form->field($generator, 'viewPath');
echo $form->field($generator, 'pathPrefix');
echo $form->field($generator, 'accessFilter')->checkbox();
echo $form->field($generator, 'generateAccessFilterMigrations')->checkbox();
echo $form->field($generator, 'enableI18N')->checkbox();
echo $form->field($generator, 'messageCategory');
echo $form->field($generator, 'modelMessageCategory');
echo $form->field($generator, 'singularEntities')->checkbox();
echo $form->field($generator, 'indexWidgetType')->dropDownList(['grid' => 'GridView', 'list' => 'ListView']);
echo $form->field($generator, 'formLayout')->dropDownList(['default' => 'full-width', 'horizontal' => 'horizontal', 'inline' => 'inline']);
echo $form->field($generator, 'actionButtonClass')->dropDownList(['yii\\grid\\ActionColumn' => 'Default']);