передавать данные из представления в контроллер и обратно для просмотра - PullRequest
1 голос
/ 09 августа 2011

дней назад я боролся с этим.проблема в следующем ...

Я новичок в мире yii

Итак, у меня есть страница 'resultat' и при выборе различных меню, контент должен бытьизменить через ajax.

Здесь представление:

 <!--Content_Resultat-->
<div class="content_resultat">
    <div class="header">
        <div class="header_top">
            <div class="centerheader"> 
            <a href="#">retournez à l'étape en cours</a>
            </div>
        </div>
        <div class="header_bottom">
        <ul class="centerlist">
            <li><a href="#"><span>1</span> votre piece</a></li>
            <li><a href="#"><span>2</span> votre exigence</a></li>
            <li><a href="#"><span>3</span> vos autre apareils</a></li>
            <li><a href="#"><span>4</span> votre utilisation</a></li>
        </ul>
    </div>
    </div>
    <div class="barre_titre">
        <a href="#">
            pour vous, lg vous propose
        </a>
        <div class="print">
            <a href="#">imprimer la liste</a>
        </div>
    </div>
    <div id="container">
    <?php echo CHtml::beginForm();?>
        <div class="onglet">
            <ul class="menu"> 
                 <?php $i = 1;
                    foreach ($data as $categorie) {?>
                    <li class="active">
                     <div class="onglet<?php echo $i;?>">
                        <img alt="no-picture" src="<?php echo $categorie->image;?>" />
                        <h4><?php echo CHtml::ajaxLink(
                        $categorie->titre,
                            Yii::app()->createUrl('getproduit'),
                            array('type'=>'POST',
                                'dataType' =>'json',
                                'enableAjaxValidation'=>true,
                                'update'=>'#carousel_container .contentWrapper #carousel_inner',
                                'data'=>'js:jQuery(".menu li h4 a").serialize()',
                                'success'=>'function(data){ $("#carousel_container li").text(data);}',

                                'error'=>'function(a,b,c){alert(b)}'
                  ));?></h4>
                     </div>
                    </li>   

                <?php $i++; }?>
            </ul>
        </div>
    </div>

    <div class="carousel_tv" id="carousel_container">

            <div class="contentWrapper">
                <div id="carousel_inner">
                    <ul id="carousel_ul">
                        <li>
                            <div class="carousel_pic">
                                <img alt="no-picture" src="images/image1.png" />
                                <div>
                                    <h3>gamme le5510</h3>
                                    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius nulla eu neque porttitor in mattis lectus pulvinar. </p>
                                </div>
                            </div>
                        </li>
                        <li>
                            <div class="carousel_pic">
                                <img alt="no-picture" src="images/image2.png" />
                                <div>
                                    <h3>gamme le5510</h3>
                                    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius nulla eu neque porttitor in mattis lectus pulvinar. </p>
                                </div>
                            </div>
                        </li>
                        <li>
                            <div class="carousel_pic">
                                <img alt="no-picture" src="images/image3.png" />
                                <div>
                                    <h3>gamme le5510</h3>
                                    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius nulla eu neque porttitor in mattis lectus pulvinar. </p>
                                </div>
                            </div>
                        </li>
                        <li>
                            <div class="carousel_pic">
                                <img alt="no-picture" src="images/image1.png" />
                                <div>
                                    <h3>gamme le5510</h3>
                                    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius nulla eu neque porttitor in mattis lectus pulvinar. </p>
                                </div>
                            </div>
                        </li>
                        <li>
                            <div class="carousel_pic">
                                <img alt="no-picture" src="images/image2.png" />
                                <div>
                                    <h3>gamme le5510</h3>
                                    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius nulla eu neque porttitor in mattis lectus pulvinar. </p>
                                </div>
                            </div>
                        </li>
                        <li>
                            <div class="carousel_pic">
                                <img alt="no-picture" src="images/image3.png" />
                                <div>
                                    <h3>gamme le5510</h3>
                                    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius nulla eu neque porttitor in mattis lectus pulvinar. </p>
                                </div>
                            </div>
                        </li>
                        <li>
                            <div class="carousel_pic">
                                <img alt="no-picture" src="images/image1.png" />
                                <div>
                                    <h3>gamme le5510</h3>
                                    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius nulla eu neque porttitor in mattis lectus pulvinar. </p>
                                </div>
                            </div>
                        </li>
                        <li>
                            <div class="carousel_pic">
                                <img alt="no-picture" src="images/image2.png" />
                                <div>
                                    <h3>gamme le5510</h3>
                                    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius nulla eu neque porttitor in mattis lectus pulvinar. </p>
                                </div>
                            </div>
                        </li>
                        <li>
                            <div class="carousel_pic">
                                <img alt="no-picture" src="images/image3.png" />
                                <div>
                                    <h3>gamme le5510</h3>
                                    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius nulla eu neque porttitor in mattis lectus pulvinar. </p>
                                </div>
                            </div>
                        </li>
                    </ul>
                </div>
                <div>
                    <h1>No Content</h1>
                </div>
                <div>
                    <h1>No Content</h1>
                </div>
            </div>

        </div>
    </div>
<?php echo CHtml::endForm();?>

данные отображаются через XML.

контроллер:

    public function actionGetproduit(){
    $obj_produit = new Gamme();
    $produits = $obj_produit->get_produits('tv');

    foreach ($produits as $data){

        echo CHtml::tag('produit',array('style'=>'display:block'),CHtml::encode($data),true);


    }   

}

Мне нужно, чтобы данные, отправляемые с контроллера, отображались в представлении ..

Но не в состоянии это сделать, любая помощь plss

Спасибо: - (

Ответы [ 2 ]

0 голосов
/ 16 декабря 2011

Обычно с Yii на кнопке или ссылке ajax, или в любом другом случае, вы делаете успех

array('success'=>'js:function(data) {
 jQuery("div#status").html(data);
}

, и внутри вашего контроллера вы можете повторить ответ обратно к вашему представлению.Также убедитесь, что у вас загружен jQuery в представлении!

0 голосов
/ 10 августа 2011

Для возвратов ajax вы обычно можете использовать renderPartial или выводить результаты так, как они есть, но функции CHtml :: tag вы обычно передавали бы объект HTML для имени тега, см. здесь или здесь но похоже, что ваша функция ожидает JSON, поэтому вам нужно будет выводить результаты в виде JSON, см. методы Yii JSON .Если это не проблема, вам, возможно, придется объяснить немного больше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...