با اجاکس dynamic model

ساخت وبلاگ
سلام 
من یک دیتابیس دارم به شرح زیر :
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(){ retu "+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 { }
}); retu false;
});
Js;
$this->registerJs($js);
?>

میخواستم بدونم ۱- با pjax چطور میتونم پیاده اش کنم به جای جیکوئری بنظرتون بهینه تره ؟

۲- من سعی کردم از url::to استفاده کنم اما ارور داد : 

var URL="http://localhost/shop/";

۳- چطور میتونم با کمک داینامیک مدل فیلد های که برای هر نوع میاد را ولیدیت کنم با وجود اینکه معلوم نیست چند فیلد باشه و هر لحظه امکان تغییرش هست ؟

- - , .

برنامه نویس...
ما را در سایت برنامه نویس دنبال می کنید

برچسب : نویسنده : خنجی prog بازدید : 154 تاريخ : جمعه 7 اسفند 1394 ساعت: 22:46

خبرنامه