Javascript Yii-在鼠标上方调用ajax并获取数据

Javascript Yii-在鼠标上方调用ajax并获取数据,javascript,php,ajax,yii,Javascript,Php,Ajax,Yii,索引文件 <h4>Dates</h4> <?php foreach($dates as $date){ echo TbHtml::ajaxButton(date("D, d M" ,strtotime($date->date)), array(

索引文件

        <h4>Dates</h4>
            <?php 
                foreach($dates as $date){
                    echo TbHtml::ajaxButton(date("D, d M" ,strtotime($date->date)),
                        array(
                            'matches/countryVenue'
                        ),
                        array(
                            // 'dataType'=>'json',
                            'type'=>'POST',
                            'data'=>array('id'=>$date->id),
                            'success'=>'js: function(data) {
                                alert(data);
                            }',
                            'failure'=>'js: function(data) {
                                   alert("error");
                            }',
                        ),
                        array(
                            "id"=>$date->id,
                            "onmouseover"=>"date(this.id);"
                        )
                    );
                    echo "<br>";
                }
            ?>
        </div>
 <script>
     function date(x){
         //alert("Date " + x);
      };
  </script>
我的问题

我需要有人帮助我准确地了解回调和ajax

此外,我计划做的是
onmouseover
ajaxButton
,我想做一个ajax调用,将按钮的ID发送到控制器,并从控制器返回json数据并转换为php数组

编辑信息


我已成功地将数据从控制器发送到索引文件,但无法在php中呈现json数据。

@再次感谢。您调试了它吗?我看到了一些问题:如果$id没有收到怎么办?如果没有场地怎么办?什么是日期格式?如果您回答我这个问题,我可以提供一个解决方案。@Skatox
$id
被控制器接收并运行查询
$CountryVincement
是获取记录的数据提供程序,它在触发查询时确实接收数据。仅出于显示目的,日期格式几乎不相关。我不知道如何
CJSON解码
并将其从js代码转换为php数组。我不明白你所说的CJSON解码是什么意思,你不需要在js代码处解码,你会收到对象数据。countryVenue
 public function actionCountryVenue(){
         if(isset($_POST['id'])){
                $id = $_POST['id'];
         }
        // echo $id;

             $criteria = new CDbCriteria();
             $criteria->select = "*";
             $criteria->condition = "DATE = ".$id;
             $countryVenue = Matches::model()->findAll($criteria);

             if(!empty($countryVenue)){
                echo CJSON::encode(array('countryVenue'=>$countryVenue));
             }
        }