Le titre réécrit est : Supprimez les éléments un par un d'un tableau à l'aide de Laravel Ajax
P粉356361722
P粉356361722 2023-08-28 14:20:24
0
1
589
<p>J'essaie de supprimer chaque élément d'un tableau affiché sous forme d'image via Append. </p> <p><strong>Lame : </strong></p> <pre class="brush:php;toolbar:false;"><h4>Image du menu</h4> <div class="col-md-12" id="cardImages"></div></pre> <p><strong><code>Fonction 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')}}", méthode : 'obtenir', données : {id:id}, Type de données : 'json', succès: fonction (données) { $('#contract_id').val(id); $('#editContract').modal('show'); $('#action').val('Speichern'); $('.modal-title').text('mise à jour des données'); $('#button_action').val('update'); var cardUp = data.cardUpload; $.each(cardUp, fonction(index,valeur) { $('#cardImages').append('<a href="{{ url('/storage/offerPic/')}}'+'/' + valeur +'" télécharger ><img src ="{{ url('/storage/offerPic/')}}'+'/' + valeur +'" alt=""></a><a class="btn btn -danger" target="_blank" rel="nofollow noreferrer" href="" méthode="post">X</a>'); }); } }) });</pré> <p><strong>Contrôleur : </strong></p> <pre class="brush:php;toolbar:false;">fonction fetchdata(Request $request) { $id = $request->input('id'); $data = RestaurantOffer::find($id); $sortie = tableau( 'cardUpload' => json_decode($data->cardUpload), ); echo json_encode($output); }</pré> Les enregistrements de colonne <p>cardUpload sont stockés sous forme de tableaux, par exemple (<code>["image1.png","image2.png"]</code>). </p> <p>Les images s'affichent correctement dans le div cardImages, mais je souhaite créer une fonction pour supprimer ces images une par une. </p> <p>La question est de savoir comment supprimer les éléments du tableau un par un. </p> <p>PS : ces images sont affichées après le bouton d'édition. Je dois donc créer une méthode de suppression ou de publication dans la méthode get. </p> <p>Merci d'avance pour votre aide</p>
P粉356361722
P粉356361722

répondre à tous(1)
P粉002572690

Pour supprimer des images spécifiques, vous devez identifier un identifiant spécifique pour chaque image :

([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)
                     ]) ;
    
}

Bouton Supprimer :

$.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',
})

Veuillez ne pas suggérer de modifications, si vous suggérez que je ne peux pas le modifier et que je dois publier une autre réponse.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal