所以这就是问题所在:
尝试使用.ajax进行ajax调用。但是,某处出现了问题,因为我的控制器没有重定向到良好的视图文件,并且我的页面上没有显示任何内容。
这是ajax调用发生的地方
$('#validate').on('click',function(){
var data = []; // data container
// collect all the checked checkboxes and their associated attributes
$("table#subsection_table input[type='checkbox']:checked").each(function(){
data.push({
subsectionid : $(this).val(),
sectionid : $(this).data('sectionid'),
year : $(this).data('year')
})
});
// JSON it so that it can be passed via Ajax call to a php page
var data = JSON.stringify(data);
$.ajax({
url : "<?php echo Yii::app()->createAbsoluteUrl("scheduler/AjaxExample"); ?>",
type: "POST",
data : "myData=" + data,
success : function()
{
alert("in success");
$("#ajax-results").html(data);
$("#ajax-results").dialog({ width: 500, height: 500})
},
error: function()
{
alert("there was an error")
}
})
console.log(JSON.stringify(data));
$('#dialog').html(data).dialog({ width: 500, heigh: 500});
});
现在这是我的控制器代码:
public function actionAjaxExample()
{
$post_data = $_POST['myData'];
$this->renderPartial('_ajax', array(
'data'=> $post_data,
)
);
}
尝试重定向到_ajax视图文件:
<?php
echo '<script language="javascript">';
echo 'alert("message successfully sent")';
echo '</script>';
echo "HI FROM BACKEND! here's what you gave to PHP: <br>";
print_r($data);
?>
所以我显然做错了但是...我似乎无法找到因为ajax调用发生的地方(至少在我的#validate点击事件中)。但是,最后一个视图文件没有显示它的警告框或“从后端打招呼”。
答案 0 :(得分:0)
尝试:
删除var data = JSON.stringify(data);
变化
data:{myData:data},
答案 1 :(得分:0)
我认为问题在于网址的引用。 请检查您是否在控制台中收到一些JavaScript错误。 如果您收到一些错误,请更改此
$.ajax({
url : "<?php echo Yii::app()->createAbsoluteUrl("scheduler/AjaxExample"); ?>",
type: "POST",
到
$.ajax({
url : '<?php echo Yii::app()->createAbsoluteUrl("scheduler/AjaxExample"); ?>',
type: "POST",
如果没有收到任何错误,请检查控制台中的xHr选项卡,是什么网址,你的ajax正在点击。如有任何问题,请通知我