我想从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脚本。 当我加载网站时,我没有收到这样的错误。所以我不知道为什么会出现这种错误。
答案 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);
}
});
});