使用ajax发布变量时找不到类Yii

时间:2015-08-10 15:16:20

标签: javascript php jquery ajax yii

我想从ajax到php获取变量。我正在使用Yii框架。 所以我的问题是,当我想将变量从ajax传输到php脚本时,我得到了这个错误:

  

致命错误:班级' Yii'找不到   /var/www/vhosts/adappter.de/comamos/protected/views/store/search_area.php   第44行store.js:1308:13

这就是我的Ajax Call的样子

var selectedCuisine = [];
$( document ).on( "click", "#cuisines", function() 
{
    if ( $(this).is(':checked') ) 
    {
        selectedCuisine.push($(this).val());
    }
        // document.getElementById('cuisine-list').style.visibility='hidden';
   $.ajax({
        type: "GET",
        url: "../protected/views/store/search_area.php",
        data: {cuisine : selectedCuisine}, 

        success: function(response){
            console.log(response);
        }
    });

});

这是我的第44行的php脚本

<?php 
if (!isset($_SESSION)) { session_start(); }

$_SESSION['search_type']='';
if (isset($_GET['s'])){
  $_SESSION['kr_search_address']=$_GET['s'];
  $_SESSION['search_type']='kr_search_address';
}

unset($_SESSION['kr_item']);
unset($_SESSION['kr_merchant_id']);

$marker=Yii::app()->functions->getOptionAdmin('map_marker');
if (!empty($marker)){
   echo CHtml::hiddenField('map_marker',$marker);
}
?>

只有当我点击一个复选框时才会调用jQuery。因此,所选框的值将被推送到数组中。我想将数组返回到PHP脚本。 当我加载网站时,我没有收到这样的错误。所以我不知道为什么会出现这种错误。

1 个答案:

答案 0 :(得分:2)

您需要使用带有操作的控制器。不仅是查看文件。您尝试从Web调用视图文件。但这是错误的,因为受保护目录中的所有代码。所有请求必须从索引文件处理。在索引文件连接框架中。这是一个小例子。控制器:

class SiteController extends Controller
    public function actionTest()
    {
        //... example
        echo CHtml::button('test');
    }

JS:

var selectedCuisine = [];
$( document ).on( "click", "#cuisines", function() 
{
    if ( $(this).is(':checked') ) 
    {
        selectedCuisine.push($(this).val());
    }
        // document.getElementById('cuisine-list').style.visibility='hidden';
   $.ajax({
        type: "GET",
        url: "/site/test", // url for your action
        data: {cuisine : selectedCuisine}, 

        success: function(response){
            console.log(response);
        }
    });

});