JsHelper を使用して、cakePHP ビューのコード ブロックを使用して、cakePHP でうまく動作しないこの jQuery Ajax Request を書き直したいと思います。これまでのところ、すべてをセットアップしました(コントローラーにヘルパーを含め、レイアウトにバッファーを記述し、ライブラリー(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);
}"
))
);
しかし、何かが足りないような気がして、このセレクター (ドキュメント) を使用する必要があるかどうかわかりません。