ajax - Remove array from multidimensional array yii ajaxlink -


i have page add items table rendered renderpartial via ajax. every time user adds item, render table items. have ajaxlink delete item user chooses. problem can delete last record of table, if click on other ajaxlink, nothing happens.

here view file search , add items

 <div class="row"> <?php $this->widget('zii.widgets.jui.cjuiautocomplete', array(             'name' => 'test_autocomplete',             'source'=>$this->createurl('insumos/ver'),              'value' => "",             'options' => array(                 'minchars'=>1,                 'autofill'=>false,                 'focus'=> 'js:function( event, ui ) {                     $( "#test_autocomplete" ).val( ui.item.label );                      return false;                 }',                 'select'=>'js:function( event, ui ) {                     $( "#pedidos_codigoinsumo").val(ui.item.id);                     $( "#pedidos_codigo").val(ui.item.codigo);                     $( "#pedidos_nombre").val(ui.item.label);                     $( "#pedidos_cantidad").focus();                     $( "#cantidades").show();                     return false;                 }',              ),             'htmloptions'=>array( 'autocomplete'=>'off'),         )); ?> </div>  <div id="cantidades"> <div class="row">     <?php echo $form->labelex($model,'codigo'); ?>     <?php echo $form->textfield($model,'codigo',array('size'=>60,'maxlength'=>300)); ?>      <?php echo $form->hiddenfield($model,'codigoinsumo'); ?>            </div>     <div class="row">     <?php echo $form->labelex($model,'nombre'); ?>     <?php echo $form->textfield($model,'nombre',array('size'=>60,'maxlength'=>300)); ?>  </div> <div class="row">     <?php echo $form->labelex($model,'cantidad'); ?>     <?php echo $form->textfield($model,'cantidad',array('size'=>60,'maxlength'=>300)); ?>             <?php echo $form->error($model,'codigoinsumo'); ?>  </div> <div class="row">     <?php echo $form->labelex($model,'observaciones'); ?>     <?php echo $form->textarea($model,'observaciones',array('rows'=>6, 'cols'=>50)); ?>  </div>     <?php echo chtml::ajaxbutton('agregar', array('pedidos/adicion'), array('type'=>'post','data'=>'js:$("#pedidoalmacen-form").serialize()','update'=>'#req_res02'));           echo chtml::ajaxbutton('cancelar pedido', array('pedidos/cancelar'), array('update'=>'#req_res02'));      ?> 

<?php $this->endwidget(); ?> <div id="req_res02"></div> 

the view has table is:

if($ver==1) { ?>  <table>     <tr>         <td align="center">borrar</td>         <td align="center">código</td>         <td align="center">insumo</td>         <td align="center">cantidad</td>         <td align="center">observaciones</td>     </tr>     <?php     $codigo=  yii::app()->session['pedido-codigo'];     $contado=count($codigo);     $i=0;     while($i<$contado)     {              ?>     <tr>         <td align="left"><?php echo chtml::ajaxlink('quitar', yii::app()->createurl('pedidos/quitar'),array('update'=>'#req_res02','type'=>'post','data'=>array('dato'=>$codigo[$i]['contador'])),array('id'=>'quitar-'.  uniqid())); ?></td>             <td align="left"><?php echo $codigo[$i]['contador']; ?></td>             <td align="left"><?php echo $codigo[$i]['insumo']; ?></td>             <td align="left"><?php echo $codigo[$i]['cantidad']; ?></td>             <td align="left"><?php echo $codigo[$i]['observaciones']; ?></td>             </tr>             <?php            $i++;     }      ?> </table> <div class="row buttons">         <?php echo chtml::submitbutton('agregar'); ?>     </div> <?php  } ?> 

and controller is

public function actionadicion()         {             $model=new pedidos;             if(isset($_post['pedidos']))             {                 $model->attributes=$_post['pedidos'];                 if(isset(yii::app()->session['pedido-codigo']))                 {                     $codigo=  yii::app()->session['pedido-codigo'];                     $contador=count($codigo)+1;                     $auxiliar=array('contador'=>$contador,'id'=>$model->codigoinsumo,'codigo'=>$model->codigo,'insumo'=>$model->nombre,'cantidad'=>$model->cantidad,'observaciones'=>$model->observaciones);                  }                 else                 {                     $auxiliar=array('contador'=>1,'id'=>$model->codigoinsumo,'codigo'=>$model->codigo,'insumo'=>$model->nombre,'cantidad'=>$model->cantidad,'observaciones'=>$model->observaciones);                  }                 $codigo[]=$auxiliar;                 yii::app()->session['pedido-codigo']=$codigo;                 $this->renderpartial('insumosporpedir',array('ver'=>'1'),false,true);                 //yii::app()->end();                 //echo $_post['data1'];//chtml::encode(print_r("hola", true));             }           }         public function actioncancelar()         {             unset(yii::app()->session['pedido-codigo']);             $this->renderpartial('insumosporpedir',array('ver'=>'0'),false,true);          }          public function actionquitar()         {             if(isset($_post['dato']))             {                 $codigo=  yii::app()->session['pedido-codigo'];                 $compara=$_post['dato'];                  foreach ($codigo $subkey => $subarray)                 {                     if($subarray['contador']==$compara)                     {                         unset($codigo[$subkey]);                         //echo $codigo[$subkey];                     }                 }                  $ver=1;                 if(count($codigo)>0)                 {                     yii::app()->session['pedido-codigo']=$codigo;                  }                 else                 {                     unset(yii::app()->session['pedido-codigo']);                     $ver=0;                  }                 //$this->layout='';                 $this->renderpartial('insumosporpedir',array('ver'=>$ver),false,true);                 //yii::app()->end();              } 

thank you!

i found problem. problem wasnt unset method, in view showed values in array. insted of using

while($i<$contado)     {              ?>     <tr>         <td align="left"><?php echo chtml::ajaxlink('quitar', yii::app()->createurl('pedidos/quitar'),array('update'=>'#req_res02','type'=>'post','data'=>array('dato'=>$codigo[$i]['contador'])),array('id'=>'quitar-'.  uniqid())); ?></td>             <td align="left"><?php echo $codigo[$i]['contador']; ?></td>             <td align="left"><?php echo $codigo[$i]['insumo']; ?></td>             <td align="left"><?php echo $codigo[$i]['cantidad']; ?></td>             <td align="left"><?php echo $codigo[$i]['observaciones']; ?></td>             </tr>             <?php            $i++;     } 

i replaced with

foreach ($codigo $key => $value)     {             ?>     <tr>         <td align="left"><?php echo chtml::ajaxlink('quitar', yii::app()->createurl('pedidos/quitar'),array('update'=>'#req_res02','type'=>'post','data'=>array('dato'=>$value['contador'])),array('id'=>'quitar-'.  uniqid())); ?></td>             <td align="left"><?php echo $value['codigo']; ?></td>             <td align="left"><?php echo $value['insumo']; ?></td>             <td align="left"><?php echo $value['cantidad']; ?></td>             <td align="left"><?php echo $value['observaciones']; ?></td>             </tr>             <?php      } 

the error occurred because lost continuity in keys everytime delete middle array


Comments

Popular posts from this blog

user interface - How to replace the Python logo in a Tkinter-based Python GUI app? -

objective c - Greedy NSProgressIndicator Allocation -

how to set an OCR language in Google Drive -