所以我有一个控制器,它具有创建Google Map的功能,在$ from和$ to places(如果两者都定义)上放置一个标记,并在两者之间绘制一条路线。此功能有两种使用方式: - 在树枝中嵌入控制器,其中$ from和$ to被赋予变量 - ajax调用,其中$ from和$ to在请求中传递。
问题是这对嵌入式控制器很有用,但是当在ajax调用中使用时,我得到了上述错误。
一些代码示例: 来自控制器:
public function stageMapAction(Request $request, $from = null, $to = null)
{
if($from === null){
$from = $request->query->get('from');
}
if($to === null){
$to = $request->query->get('to');
}
.......(create map, put markers on it, code omitted) ....
if($from !='' && $to!='' ){
$temp = $directions->route($from, $to);
$routes = $temp->getRoutes();
foreach ($routes as $route) {
$overviewPolyline = $route->getOverviewPolyline();
$overviewPolyline->setOption('strokeColor', '#0000ff');
$overviewPolyline->setOption('strokeWeight', 1.5);
$map->addEncodedPolyline($overviewPolyline);
}
}
从显示记录的树枝模板:
{% set from = stagecurrent.getStageFrom() %}
{% set to = stagecurrent.getStageTo() %}
{{ render(controller('TravelBundle:Map:stageMap',{ 'from':from, 'to':to })) }}
从我在表单上显示相同内容的jquery(map_stage_call路由调用相同的控制器和函数):
function refreshMap(){
var $from = $('.stage-from').val();
var $to = $('.stage-to').val();
$.ajax({
type: "POST",
url: "{{ url('map_stage_call') }}?from=" + $from + "&to=" + $to,
success: function (data) {
$('#placeholder-map').html(data);
},
error: function(){
$('#placeholder-map').html('error');
}
});
};
奇怪的是,当我放置标记时,一切都运行良好,这是折线,似乎给出了问题。更奇怪的是,当我将$和$传递给输出html时,它们在两种情况下完全相同。有什么想法吗?