Delete AJAX / Appel de controller

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Delete AJAX / Appel de controller

Re: Delete AJAX / Appel de controller

par Archos » 20 févr. 2015, 18:09

Erreur de typo ;p

Voilà où j'en suis pour le moment:
[javascript]
$(document).ready(function(){
$(".ajax_delete").click(function(){
var del_id = $(this).attr('id');
var myTr = $(this).parent().parent();
console.log(del_id);
$.ajax({
type:'POST',
url:'{{ path }}/Controller/AdminController/deleteNews',
data: 'id=' + del_id,
success:function(data) {
if(data) {
myTr.remove();
console.log(data);
alert('supprimé');
}
},
error: function() {
alert('error');
}
});
});
});
[/javascript]
Le problème c'est que je n'arrive pas à accéder à mon contrôleur, qui se présente comme ceci:
<?php
namespace Controller;
use Model\Actualite;

class AdminController extends BaseController

public function deleteNews($id){
        $news = Actualite::find($id);
        $news->delete();
    }
Je rentre bien dans le if(data) car au moment de la suppression ça me retourne l'alerte "supprimé".
Le console.log(data) me retourne une erreur me disant Class 'Controller\BaseController' not found in...mon url (l'url est bien la bonne), c'est le extends BaseController qui bloque.. J'ai donc enlevé mon extends (car il n'est pas indispensable pour effectuer l'action de suppression), là plus d'erreur mais cependant rien ne se passe, l'objet ne se supprime pas en BDD ;/

Re: Delete AJAX / Appel de controller

par tof73 » 20 févr. 2015, 16:34

cela me semble une bonne base.

après il vaudrait mieux accorder ces violons :
$(".delete_class").click(function(){
<a href="" class="ajax_delete"

Delete AJAX / Appel de controller

par Archos » 20 févr. 2015, 15:48

Bonjour,

je suis en train de créer un backend en MVC (avec Slim, Twig et Eloquent) permettant de gérer des news, entre autres.
J'ai le listing dynamique de mes news avec pour chacune la possibilité de la supprimer:
<tr>
       <th scope="row">{{ news.id }}</th>
        <td><input type="checkbox"></td>
        <td>
             <a href="" class="ajax_delete" id="{{ news.id }}">Supprimer/i></a>
         </td>
        <td>{{ news.titre }}</td>
</tr>
Ensuite je fais mon appel AJAX mais je ne sais pas trop comment m'y prendre. J'ai une très mince connaissance d'Ajax jusqu'ici.
[javascript]
<script type="text/javascript">
$(document).ready(function(){
$(".delete_class").click(function(){
var del_id = $(this).attr('id');
$.ajax({
type:'delete',
url: 'j\'aimerai/Appeler/Mon/Controller/Delete',
data:'delete_id='+del_id,
success:function(data) {
if(data) {
// Suppression de la ligne + Notification de succès
}
},
error: function() {
// Notification d'erreur
}
});
});
});
</script>
[/javascript]

Le traitement correct est d'appeler la méthode delete($id) de mon contrôleur dans le paramètre url d'ajax ?

Merci