سلام
من یک دیتابیس دارم به شرح زیر :
type : id - name -parent
fields : id - typeid-name - latinname
fields-value: id - filedid -objectid - fieldvalue
object : id - name -description - typeid-userid
من برای درج فرم در سایت زیر استفاده میکنم :
http://www.4bit.ir/objects/add
حالا من توی این فرم یک dropdownlist دارم که type ها را نمایش میده دارم بر اساس ان با جیکوئری به صورت اجاکس فیلد های مخصوص به ان type را میگیرم حالا مساله اینجاست که نام فیلد های در fields و مقدارشون در fileds-value هست که جدول fields-value اطلاعاتی که کاربران برای ان فیلد ها وارد میکنند را قرار هست ذخیره کنه .
کد هاش :
میخواستم بدونم ۱- با pjax چطور میتونم پیاده اش کنم به جای جیکوئری بنظرتون بهینه تره ؟
۲- من سعی کردم از url::to استفاده کنم اما ارور داد :
var URL="http://localhost/shop/";
۳- چطور میتونم با کمک داینامیک مدل فیلد های که برای هر نوع میاد را ولیدیت کنم با وجود اینکه معلوم نیست چند فیلد باشه و هر لحظه امکان تغییرش هست ؟
من یک دیتابیس دارم به شرح زیر :
type : id - name -parent
fields : id - typeid-name - latinname
fields-value: id - filedid -objectid - fieldvalue
object : id - name -description - typeid-userid
من برای درج فرم در سایت زیر استفاده میکنم :
http://www.4bit.ir/objects/add
حالا من توی این فرم یک dropdownlist دارم که type ها را نمایش میده دارم بر اساس ان با جیکوئری به صورت اجاکس فیلد های مخصوص به ان type را میگیرم حالا مساله اینجاست که نام فیلد های در fields و مقدارشون در fileds-value هست که جدول fields-value اطلاعاتی که کاربران برای ان فیلد ها وارد میکنند را قرار هست ذخیره کنه .
کد هاش :
$form = ActiveForm::begin([ 'id' => 'object-add', 'options' => [ 'class' => 'form-horizontal', 'enctype' => 'multipart/form-data' ], ])?> <?= $form->field($model, 'type_id')->dropdownlist([['prompt'=>'نوع را انتخاب کنید'],$type]) ?> <?= $form->field($model, 'title') ?> <?= $form->field($model, 'description')->textarea() ?> <?= Html::submitButton('ثبت شی دیجیتال',['class'=>'btn btn-primary']) ?> <?php ActiveForm::end(); $js=<<<Js var URL="http://localhost/shop/"; $('#objects-type_id').change(function(e){ e.preventDefault(); e.stopImmediatePropagation(); $.post(URL+"fields/getfields",{getfields:'true',object_type_id:$(this).val()},function(res){ res=JSON.parse(res); if(res!=[]) { $('.hasremove').remove(); for(var i=0;i<res.length;++i) { $.each(data.attributes, function(key, val) { val = $.parseJSON(val); val.validate = eval("var f = function(){ return "+val.validate.expression+";}; f() ;") ; $('#object-add-form').yiiActiveForm('add', val); }); $('.field-objects-description').after('<div class="form-group field-fieldsrelationship-'+res[i].latin_name+' hasremove"><label class="control-label" for="fieldsrelationship-'+res[i].latin_name+'">'+res[i].name+'</label><input type="text" required id="fieldsrelationship-'+res[i].latin_name+'" class="form-control" name="fieldsrelationship['+res[i].latin_name+']"><div class="help-block"></div></div>'); } } else { } }); return false; }); Js; $this->registerJs($js); ?>
میخواستم بدونم ۱- با pjax چطور میتونم پیاده اش کنم به جای جیکوئری بنظرتون بهینه تره ؟
۲- من سعی کردم از url::to استفاده کنم اما ارور داد :
var URL="http://localhost/shop/";
۳- چطور میتونم با کمک داینامیک مدل فیلد های که برای هر نوع میاد را ولیدیت کنم با وجود اینکه معلوم نیست چند فیلد باشه و هر لحظه امکان تغییرش هست ؟