Envoyer des données avec l'ajax d'action du contrôleur

- Je utiliser yii framework pour créer des cartes de l'application.Dans cette application que j'utilise GeoExt et Openlayers.Dans cette Application, l'utilisateur peut tracer un polygone et de l'enregistrer pour la réalisation de cet après utilisateur de tracer un polygone et cliquez dessus(OpenLayers fonction) j'ai envoyer un polygone avec l'ajax, pour économiser sur la base de données mais je ne peux pas obtenir tout ajax données de contrôleur de l'action dans yii framework.Voir code ci-dessous!

var selectOptions = {
            clickout: true,
            onSelect: save
        };
        select = new OpenLayers.Control.SelectFeature(vectors, selectOptions);
        map.addControl(select);
var saveButton = new Ext.Button({
            text: 'Save',
            enableToggle: true,
            toggleGroup: toggleGroup,
            handler: function(toggled)
            {
                if(toggled){
                    polygon.deactivate();
                    modify.deactivate();
                    select.activate();
                }   
            }
function save(feature) {
        var geojson_format = new OpenLayers.Format.GeoJSON();
        var str = geojson_format.write(feature, true);
        Ext.MessageBox.prompt('Name', 'Please enter district name:', "Ok");
        <?php 
            echo CHtml::ajax(array(
                'url'=>array('site/test'),
                'data'=>array('polygon'=>'data'),
                'type'=>'POST',
                'success'=>"function(){
                        alert('ok');
                    }"
            ));
        ?>
        $("#output").val(str);
    }

dans la fonction save-je utiliser yii Chtml::ajax pour envoyer un polygone à Yii site test du contrôleur de l'action dans ce code php j'ai envoyer un polygone avec des 'données' pour le test, mais dans la vraie je veux envoyer la variable str qui est un polygone geojson objet de contrôleur de l'action.À la fin de la fonction, j'utilise $("#output").val(str); pour les essais geojson var str-je voir le résultat dans la sortie textarea mais je ne sais pas pourquoi les données ne pas envoyer de contrôleur de l'action!
contrôleur de l'action Code

   class SiteController extends Controller
   {
public $polygon;
public function actionTest()
    {
       if(isset($_POST['polygon']))
            $this->polygon=$_POST['polygon'];

         $this->render("test", array('polygon'=>$this->polygon));
}

pour tester la fonctionnalité j'ai créer un polygone dans le plan et cliquez sur le bouton enregistrer après ce bouton est activé je clique sur le créé un polygone je vois polygone geojson objet dans la sortie textarea mais quand je veux voir objet polygone dans le navigateur avec http://localhost/FleetManagement/index.php/site/test je ne vois que des Nuls!!
test afficher le code:

<?php 
    var_dump($polygon);
?>

Ci-dessous est fonction de sauvegarde dans les outils de développement chrome!

function save(feature) {
        var geojson_format = new OpenLayers.Format.GeoJSON();
        var str = geojson_format.write(feature, true);
        Ext.MessageBox.prompt('Name', 'Please enter district name:', "Ok");
        jQuery.ajax({'url':'/FleetManagement/index.php/site/test','data':{'polygon':'data'},'type':'POST','cache':false});            $("#output").val(str);
    }

quand je debug, je vois JQuery.ajax ligne exécuter mais je ne connais pas cette ligne peut envoyer des données ou pas! parce que quand je vois le test de la vue, je ne vois Nulle!
Dans le code ci-dessus, je peux voir le succès d'alerte, mais je ne peux pas voir le contrôleur de site de polygone dans le test de la vue et de l' $polygone est Nul!

  • Que fait un var_dump($_POST) montrent dans actionTest()? Ce qui ne les Outils de développement Chrome montrer comme étant soumis?
InformationsquelleAutor user1344766 | 2012-07-31