首頁  >  問答  >  主體

重寫後的標題為:使用Laravel Ajax 從陣列中逐一刪除元素

<p>我正在嘗試從透過Append顯示為圖像的陣列中刪除每個元素。 </p> <p><strong>刀刃:</strong></p> <pre class="brush:php;toolbar:false;"><h4>選單圖片</h4> <div class="col-md-12" id="cardImages"></div></pre> <p><strong><code>Ajax函數</code></strong></p> <pre class="brush:php;toolbar:false;">$(document).on('click', '.edit', function(){ $("#cardImages").empty(); var id = $(this).attr("id"); $('#form_output').html(''); $.ajax({ url: "{{route('restaurantOffers.fetchdata')}}", method: 'get', data: {id:id}, dataType: 'json', success:function(data) { $('#contract_id').val(id); $('#editContract').modal('show'); $('#action').val('Speichern'); $('.modal-title').text('資料更新'); $('#button_action').val('update'); var cardUp = data.cardUpload; $.each(cardUp, function(index,value) { $('#cardImages').append('<a href="{{ url('/storage/offerPic/')}}' '/' value '" download ><img src=" {{ url('/storage/offerPic/')}}' '/' value '" alt=""></a><a class="btn btn-danger" target="a class="btn btn-danger" target=" ;_blank" rel="nofollow noreferrer" href="" method="post">X</a>'); }); } }) });</pre> <p><strong>控制器:</strong></p> <pre class="brush:php;toolbar:false;">function fetchdata(Request $request) { $id = $request->input('id'); $data = RestaurantOffer::find($id); $output = array( 'cardUpload' => json_decode($data->cardUpload), ); echo json_encode($output); }</pre> <p>cardUpload列記錄儲存為數組,例如(<code>["image1.png","image2.png"]</code>)。 </p> <p>這些圖像在cardImages div中顯示得很好,但我想建立一個函數來逐一刪除這些圖像。 </p> <p>問題是如何逐一刪除陣列元素。 </p> <p>PS:這些圖片在編輯按鈕之後顯示。因此,我必須在get方法中建立刪除或發布方法。 </p> <p>提前感謝您的幫忙</p>
P粉356361722P粉356361722419 天前529

全部回覆(1)我來回復

  • P粉002572690

    P粉0025726902023-08-29 11:16:53

    要刪除特定的圖像,您應該為每個圖像確定一個特定的id:

    ([1=>"image1.png",2=>"image2.png"]).

    function delete(Request $request)
    {
        $id = $request->input('id');
        $imageIdToDelete=$request->input('image_index') ;
        $data = RestaurantOffer::find($id);
        $images=json_decode($data->cardUpload,true) ;
        if(isset($images[$imageIdToDelete])){
        unset($images[$imageIdToDelete]) ;
        }
        
    
        $data->update([
           'cardUpload'=>json_encode($images)
                         ]) ;
        
    }

    刪除按鈕:

    $.each(cardUp, function(index,value) {
         $('#cardImages').append('<a href="{{ url('/storage/offerPic/')}}'+'/' + value +'" download >
    <img src="{{ url('/storage/offerPic/')}}'+'/' + value +'" alt=""></a>
    
        <button class="btn btn-danger delete" data-index=index  >delete</button>');
    
            });
    
    
    $('delete').on('click',function(){
    var image_index= $(this).attr('data-index')
    })
    
    $.ajax({
       url: "{{route('restaurantOffers.delete')}}",
       method: 'get',
       data: {image_index:image_index},
       dataType: 'json',
    })

    請不要建議編輯,如果您建議我無法編輯它,必鬚髮布另一個答案。

    回覆
    0
  • 取消回覆