我想从ajax到php获得一个变量。我用的是Yii框架。所以我的问题是,当我想把一个变量从ajax到php脚本我得到这个错误:
致命错误:类'Yii'没有找到/var/www/vhosts/adappter.de/comamos/保护/视图/商店/search_area.php第44行store.js:1308:13
这是我的Ajax调用看起来像
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);
}
});
});
这是我的PHP脚本第44行
<?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脚本。当我加载网站时,我没有得到这样的错误。所以我不知道为什么会出现这个错误
你需要使用controller with action。不只是查看文件。你尝试从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);
}
});
});