2015-03-22 2 views
0

Yii: 1.1.15ajaxlink rafraîchir la fenêtre après "supprimer"

J'ai une liste dans ma vue et derrière chaque ligne un ajaxLink pour supprimer la ligne. Cela fonctionne mais le navigateur ne s'actualise pas automatiquement ... avec STRG-R il se rafraîchit et la ligne supprimée disparaît. Mon code:

echo CHtml::ajaxLink('X', 
    Yii::app()->createUrl('forumkommentar/delete', array("id" => $kommentar->id)), array(
    'type' => 'POST', 
    'data' => array('YII_CSRF_TOKEN' => Yii::app()->request->csrfToken), 
//  'data' => 'js:{"data":' . $kommentar->id . '}', 
//  'success' => 'js:function(string){ document.getElementById("' . $kommentar->id . '").remove(); }' 
), array(
    'class' => 'btn btn-danger small-btn', 
    'confirm' => 'Are you sure?', //Confirmation 
)); 

Je pense que je dois les deux lignes ci-dessus pour rafraîchir commenté la fenêtre - mais cela ne fonctionne pas.

Mes questions:

  1. Comment puis-je combiner les deux "données" trapézoidale? (ligne 4 et 5)
  2. Qu'est-ce qui ne va pas dans mon code - ou comment le feriez-vous?

Répondre

0

Firs, vous faites la demande ajax avec le type POST, de sorte que vous ne pouvez pas utiliser des paramètres d'URL, car les paramètres d'URL sont GET paramètres. Par conséquent, je pense que cela peut être utile:

echo CHtml::ajaxLink('X', 
    Yii::app()->createUrl('forumkommentar/delete'), array(
    'type' => 'POST', 
    'data' => array('YII_CSRF_TOKEN' => Yii::app()->request->csrfToken, "kommentar" => $kommentar->id), 
    //'success' => 'js:function(string){ document.getElementById("' . $kommentar->id . '").remove(); }' 
), array(
    'class' => 'btn btn-danger small-btn', 
    'confirm' => 'Are you sure?', //Confirmation 
)); 

Maintenant, vous pouvez accéder à $_POST['kommentar'] dans le actionDelete() de ForumkommentarController.

+0

Ce n'est pas possible. La suppression ne se produit pas. Et aussi le navigateur ne rafraîchit pas. – Didgejo