2012-06-17 3 views
0

Je suis actuellement en utilisant le code suivant pour envoyer un Ajax se demande à mon contrôleur:modèle Envoyer attribue au contrôleur Yii utilisant ajax

echo CHtml::ajaxLink('clickMe', array('ajax'), array('update'=>'#results')); 

Cela fonctionne bien, le contrôleur reçoit la demande et met à jour la vue en conséquence .

Maintenant, je veux envoyer cette demande attributs du modèle, à savoir de model->getAttributes();

Comment dois-je faire? Créer un objet JSON des attributs et l'envoyer avec la demande?

Répondre

2

Il suffit de passer l'attribut 'data' et 'type' si nécessaire:

echo CHtml::ajaxLink('clickMe', array('ajax'), array(
    'update' => '#results' 
    'data' => CJSON::encode($model->attributes), 
    'type' => 'post', 
)); 

Ce code remplace tout le contenu de #results avec JSON. Si vous avez besoin quelque chose de différent, utilisez le « succès » au lieu de « mise à jour » comme ceci:

echo CHtml::ajaxLink('clickMe', array('ajax'), array(
    'success' => 'function (response) { 
      // do everything you need 
    }', 
    'data' => CJSON::encode($model->attributes), 
    'type' => 'post', 
)); 

Jetez un oeil à jquery ajax options pour plus d'informations.

+0

Merci, cela fonctionne aussi loin que json va mais pour une raison quelconque, la vue ne se met pas à jour. Toujours en regardant dans ce .. – rix

+0

J'ai mis à jour ma réponse, vérifiez-le. Ou peut-être que vous n'avez simplement pas d'élément avec id = "résultat"? – Choo

Questions connexes