作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Code Igniter 和 Googlemaps 库。该库动态生成大量 Javascript 代码,包括每个新标记的 InfoWindows 内容,但我想将其保存在单独的模板文件中,就像常规 View 一样。
我有这段 Javascript 代码(来自 Googlemaps 的库):
var lat = marker.getPosition().lat();
var long = marker.getPosition().lng();
var windowContent = "";
if( _new ) {
var newIW = new google.maps.InfoWindow( { content: windowContent } );
我想做的是从模板文件加载windowContent
。我已经成功地为此变量动态生成一个表单并使用上面定义的 lat
和 long
变量,但是我如何在 Code Igniter 中实现这一点?我不能使用 load->view
因为我不在 Controller 的上下文中。由于 CI 的安全限制,我不能使用 include()
或 readfile()
。
有什么提示吗?
最佳答案
使用纯javascript,获取纬度和经度,在查询字符串中用纬度和经度制作一个url,并使用xhr 进行ajax 调用。
var lat = marker.getPosition().lat();
var long = marker.getPosition().lng();
var xhr;
var url = "http://myurl.to/script.php?lat="+lat+"&lng="+long;
if(typeof XMLHttpRequest !== 'undefined')
xhr = new XMLHttpRequest();
else {
//Get IE XHR object
var versions = ["MSXML2.XmlHttp.5.0",
"MSXML2.XmlHttp.4.0",
"MSXML2.XmlHttp.3.0",
"MSXML2.XmlHttp.2.0",
"Microsoft.XmlHttp"];
for(var i = 0, len = versions.length; i < len; i++) {
try {
xhr = new ActiveXObject(versions[i]);
break;
}
catch(e){}
}
}
xhr.onreadystatechange = function(){
//This function is called every so often with status updates
//It is complete when status is 200 and readystate is 4
if(xhr.status == 200 && xhr.readyState === 4) {
//Returned data from the script is in xhr.responseText
var windowContent = xhr.responseText;
//Create the info window
var newIW = new google.maps.InfoWindow( { content: windowContent } );
//Pass newIW to whatever other function to use it somewhere
}
};
xhr.open('GET', url, true);
xhr.send();
如果使用像 jQuery 这样的库,它会像
var lat = marker.getPosition().lat();
var long = marker.getPosition().lng();
var url = "http://myurl.to/script.php";
jQuery.ajax({
"url":url,
"data":{ //Get and Post data variables get put here
"lat":lat,
"lng":long
},
"dataType":"html", //The type of document you are getting, assuming html
//Could be json xml etc
"success":function(data) { //This is the callback when ajax is done and successful
//Returned data from the script is in data
var windowContent = data;
//Create the info window
var newIW = new google.maps.InfoWindow( { content: windowContent } );
//Pass newIW to whatever other function to use it somewhere
}
});
关于php - 如何将 PHP 模板添加到动态生成的 Javascript 代码中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17925822/
我是一名优秀的程序员,十分优秀!