2010-03-09 82 views
0

我目前擁有使用$ .post工作/保存到數據庫的所有內容,但是我不確定如何顯示新列表而無需重新加載頁面保存。我也嘗試過$(document).ready(),但在那裏也沒有運氣。jquery在將信息保存到數據庫之後,將ul添加到ul

<script> 

saveBullet = function(action) { 

    $.post('/ManufacturersProductsLinesFeatures/ajax_save/', { 
     'data[ManufacturersProductsLinesFeature][bullet_point]':$('#ManufacturersProductsLinesFeatureBulletPoint').val(), 
     'data[ManufacturersProductsLinesFeature][manufacturers_products_line_id]':$('#ManufacturersProductsLinesFeatureManufacturersProductsLineId').val(), 
     'data[ManufacturersProductsLinesFeature][created_by]': <?=user('id')?>, 
    },function() { 
      //I've tried more than a couple things here. 
     //$(this).closest('ul').append('<li>'); 
    }); 
} 

</script> 



<input type="button" value="Save Bullet" onClick="javascript: saveBullet();"> 


<div id="sortableDiv" width="100%"> 
     <?if (empty($this->data['ManufacturersProductsLinesFeature'])) : ?> 
       There are no bullet points to display. &nbsp;Please add a bullet point. 
     <? else : ?>  
      <ul id="list1"> 
       <? foreach ($this->data['ManufacturersProductsLinesFeature'] as $k => $v): ?> 
        <li id="ManufacturersProductsLinesFeature_<?=$v['id'];?>" style="border-bottom: solid 1px #d5d5d5;" class="special"> 
         <table width="100%"> 
          <tr> 
           <td width="25" align="left"><?=$html->image('/img/icons/arrow_switch.gif');?></td> 
           <td><?=$v['bullet_point'];?></td> 
           <td style="vertical-align: middle;" vAlign="middle" align="right"> 
            <a href="<?=$html->url('/ManufacturersProductsLinesFeatures/edit/'.$product_type_id.'/'.$v['manufacturers_products_line_id'].'/'.$v['id']);?>"><img src="<?=$html->url('/img/icons/pencil.gif')?>" /></a> 
            <?= $html->link($html->image('icons/bin_empty.gif'), array('action'=>'../ManufacturersProductsLinesFeatures/delete_feature/', 'id'=>$product_type_id.'/'.$v['manufacturers_products_line_id'].'/'.$v['id']), null, "Are you sure?", false); ?> 
           </td> 
          </tr> 
         </table> 
        </li> 
       <?endforeach; ?>  
      </ul> 
     <?endif; ?>  
    </div> 

我想我來最接近的是此論壇上發帖http://www.killersites.com/forums/topic/780/jquery-add-remove-list-item/

saveBullet =功能(作用),你需要線了按鈕實際上是一個變化{

 var i=$('ul#list1 li').size() + 1; 

    $.post('/ManufacturersProductsLinesFeatures/ajax_save/', { 
     'data[ManufacturersProductsLinesFeature][bullet_point]':$('#ManufacturersProductsLinesFeatureBulletPoint').val(), 
     'data[ManufacturersProductsLinesFeature][manufacturers_products_line_id]':$('#ManufacturersProductsLinesFeatureManufacturersProductsLineId').val(), 
     'data[ManufacturersProductsLinesFeature][created_by]': <?=user('id')?>, 
    },function() { 
     $('<li> List ' + i + '</li>').appendTo('ul#list1'); 
     i++; 
    }); 

} 
+0

您是否使用從服務器返回的數據來創建新的列表項目? – czarchaic 2010-03-10 01:00:15

回答

2

做ajax調用並添加li元素。 (我真的不檢查你的saveBullet功能在做什麼,我只是做它被調用按鈕的點擊。)給出的按鈕,像這樣的ID:

<input type="button" id="buttonSave" value="Save Bullet"/> 

然後jQuery的:

$(document).ready(function() { 

    $('#buttonSave').click(function() { 
     saveBullet('action_here');   
     return false;  // cancel default button click action 
    }); 


    function saveBullet(action) { 

    var i=$('ul#list1 li').size() + 1; 

    $.post('/ManufacturersProductsLinesFeatures/ajax_save/', { 
     'data[ManufacturersProductsLinesFeature][bullet_point]':$('#ManufacturersProductsLinesFeatureBulletPoint').val(), 
     'data[ManufacturersProductsLinesFeature][manufacturers_products_line_id]':$('#ManufacturersProductsLinesFeatureManufacturersProductsLineId').val(), 
     'data[ManufacturersProductsLinesFeature][created_by]': <?=user('id')?>, 
     }, 
     function() { 
     $('<li> List ' + i + '</li>').appendTo('ul#list1'); 
     i++; 
     }); 

    } 

});