تالار گفتمان nCIS.ir

نسخه‌ی کامل: اپدیت مدل با ایجکس
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام من یک پارشیال ویو دارم که یک مدل بهش پاس دادم و داخل حلقه مقادیری را نمایش میده . شبیه این : 
<?php foreach ($model as $key => $value) :?>

...

<?php endforeach; ?>

در ویو اصلی یک request ایجکسی به اکشن مورد نظرم میزنم و از دیتابیس مقادیری را میخونم و میخوام مدل داخل این پارشیال ویو را با مقادیر جدید دریافت شده آپدیت کنم 

$(function(){
     $("#slcCat").change(function(){
       $.ajax({
           url : 'getbycat',
           dataType:'JSON',
           type:'POST',
           data: {
           slcCat: $('#slcCat').find(':selected').val(),
           _csrf: yii.getCsrfToken()
           },
           success: function(model){
           
         }
       });
       })
     })

تا اینجا مقادیر مورد نظرم را بصورت json از سرور گرفتم و حالا باید مدل داخل پارشیال ویو آپدیت بشه 
به چه طورتی باید این کارو بکنم ؟
در اکشن به این شکل عمل کردم درخواست ایجکسی درست انجام میشه و مدل به پارشیال ارسال میشه ولی اطلاعات پارشیال  ویوو آپدیت نمیشه و هیچ تغییری نمیکنه .

 return $this->renderPartial('_LstKnowledgebase', ['model' =>  $model]);
از renderAjax استفاده کنید.
با اینم نشد
درخواست به سمت پارشیال با مقادیر صحیح میره ولی محتوا هیچ تغییری نمیکنن !
خوب شما توی success هیچ کاری نکردین!
توی success هم به این شکل نوشتم :
 $("#divPartial").html(result);
ولی اتفاقی نیفتاد !


اصلا وقتی در اکشن نتیجه را به پارشیال پاس میدم دیگه در success نمیره 

با inspect element وقتی response را ردگیری میکنم نتیجه ی بازگشتی درسته ولی جایگزین محتوای قبلی در پارشیال ویو نمیشه !!!
توی success بر نمیگرده و به error میره و خطای parseerror میده !

رفتم در یک پروژه تستی دیگه یک کد ساده نوشتم که چیز خاصی هم نداره اونم میره به error و خطای parseerror میده !!!
وقتی فرمت رو JSON انتخاب کردین، باید خروجی هم JSON باشه.
function actionGetbycat($slcCat)
{
    if (!Yii::$app->request->isAjax) {
        throw new yiiwebForbiddenHttpException('Unauthorized Access');
    }
    Yii::$app->response->format = 'json';
    return Products::findAll(['cat_id' => $slcCat])->toArray();
}