【发布时间】:2013-01-25 09:19:39
【问题描述】:
我想使用 JsHelper 在我的 cakePHP 视图中使用代码块重写此 jQuery Ajax 请求,该请求不适用于 cakePHP。 到目前为止,我已经设置了所有东西(在我的控制器中包含了帮助程序,在我的布局中写入了缓冲区,包含了我的库(jQuery)),但我不知道如何重写:
$.ajax
({
url: 'clients/loadJsonMarkers',
accepts: 'json',
type: 'POST',
data: postData,
dataType: 'json',
error: function(xhr,status,err){
alert("DEBUG: status"+status+" \nError:"+err);
},
success: function(transport)
{
var markers = new Array();
for(var i in transport.clients)
{
var latlng = transport.clients[i].Client.geoloc.replace("(", "");
latlng = latlng.replace(")", "");
latlng = latlng.split(',');
//console.debug(latlng);
markers.push(new google.maps.LatLng(parseFloat(latlng[0]),parseFloat(latlng[1])));
}
loadMap(markers);
}
});
到目前为止,我所取得的成就是这样的:
$this->Js->get('document');
$this->Js->event('load',
$this->Js->request(
array('action' => 'loadJsonMarkers'),
array('assync'=>TRUE, 'type'=>'json', 'method'=>'POST', 'data'=>$_POST)
),
array('success'=>$this->Html->scriptBlock("
function(transport)
{
var markers = new Array();
for(var i in transport.clients)
{
var latlng = transport.clients[i].Client.geoloc.replace('(', '');
latlng = latlng.replace('(', '');
latlng = latlng.split(',');
//console.debug(latlng);
markers.push(new google.maps.LatLng(parseFloat(latlng[0]),parseFloat(latlng[1])));
}
loadMap(markers);
}"
))
);
但我觉得缺少一些东西,我不知道我是否应该使用这个选择器(文档)。
【问题讨论】:
-
既然已经有了,为什么不把它写成普通的 JS 呢?在 CakePHP 3.0 中它是 likely it will be removed。
-
伙计,我试过了。我发誓,这是一次盲目的尝试,是让这件事发挥作用的绝望尝试。这是我的第一个问题,我的 JS 代码不起作用:stackoverflow.com/questions/14486895/…
标签: ajax cakephp cakephp-2.1