رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
ارسال نشدن مقادیر
#1
سلام
من دارم روی یه سیستم فروشگاهی کار می کنم
می خوام یه محصول رو به چند مجموعه اختصاص بدم
و برای این کار از کد زیر دارم استفاده می کنم

<div class="form-inline">
<h4> دسته بندی ها</h4>
<div class="form-group"> 
<?php 
echo CHtml::listBox('category_list',null,$model->getCategory(), array('multiple'=>true,'size'=>8,'style'=>"width: 180px; "));
echo $form->ListBox($category,'category_id[]',array(),array('class'=>'ProductCategory','multiple'=>true,'size'=>8,'style'=>"width: 180px; margin-right:15px;"));
echo CHtml::activeHiddenField($category, 'product_id',array('value'=>$model->id));
?>
<table class="move">
<tr >
<td></td><td></td><td></td>
<td rowspan ="2"><?php echo CHtml::button('<',array('id'=>'addlist')) ;?></td>
<td rowspan="2"><?php echo CHtml::button('>',array('id'=>'addproduct')) ;?></td>
</tr>
</table>
</div>
</div>
<script type="text/javascript" >
$('#addproduct').click(function () {
inHTML = "",
$("#category_list option:selected").each(function () {
   var optionVal = $(this).val();
   var text = $(this).text();
   var exists = false;
   $('.ProductCategory option').each(function(){
       if (this.value == optionVal) {
           exists = true;
       }
   });
   
   if(!exists) {
      inHTML += '<option value="' + optionVal + '">' + text + '</option>';
     
   }
   $("#category_list option:selected").remove();
});
$(".ProductCategory").append(inHTML);
});

$('#addlist').click(function () {
inHTML = "",
$(".ProductCategory option:selected").each(function () {
   var optionVal = $(this).val();
   var text = $(this).text();
   var exists = false;
   $('#category_list option').each(function(){
       if (this.value == optionVal) {
           exists = true;
       }
   });
   
   if(!exists) {
      inHTML += '<option value="' + optionVal + '">' + text + '</option>';
     
   }
   $(".ProductCategory option:selected").remove();
});
$("#category_list").append(inHTML);
});
</script>
مشکلی که هست
موقع ارسال اطلاعات به کنترلر category_id ارسال نمیشه
public function actionUpdate($id)
{
$model=$this->loadModel($id);
$category = new ProductToCategory;
$related = new ProductRelated;
// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);

if(isset($_POST['Product']))
{
$model->attributes=$_POST['Product'];
if(isset($_POST['ProductToCategory']))
{
Tools::debug($_POST['ProductToCategory'],true);
}

if($model->save())
$this->redirect(array('admin'));
}

$this->render('update',array(
'model'=>$model,
'category'=>$category,
'related'=>$related
));
}
پاسخ
تشکر شده توسط:
#2
مسئله اینه که category_id شما آرایه نیست (توی مدل) و شما دارین آرایه میفرستین. باید خودتون دستی توی کنترلر برای هرکدوم یه ActiveRecord جدا از جدول واسط بسازین و فیلدها رو دستی مقداردهی کنید.
پاسخ
تشکر شده توسط:




کاربران در حال بازدید این موضوع: 1 مهمان