我有一个页面,其中包含我构建的一些调用webservice的链接。
这是jquery函数的摘录:
$.ajax({
type: 'GET',
dataType: 'json',
url: 'json.php',
success: function (response) {
data = response.obj;
var errorCode = response.errorCode;
if (errorCode === 200) {
$.each(data, function (key, value) {
l_id_nation = value.id;
var name = value.name;
var continente = name.val;
$('#sidemenu').append('<li><a class="id_continent" href="javascript:void(0)">' + continente + '</a></li>');
});
$('.id_continent').click(function () {
var id_continent = $(this).html();
});
}
},
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(thrownError);
}
});
点击后,我打开一个显示一些信息的页面。
该网页的网址为/trip.php?id_trip=1234&continet=oceania
我想要一个像/trip/123/oceania
我正在考虑创建路径文件,但我不了解如何动态创建这个新网址。
答案 0 :(得分:1)
如果我已正确解释(?),您希望将您收集的网址转换为&#34; webservice&#34;打电话并将它们转换为seo友好链接?
以下不是jQuery,但似乎解析数据并以您想要的格式返回url。
if( typeof( 'getPairs' )!='function' ){
function getPairs(d,z) {
var a = new Object();
var pr = d.split(z);
for( var i=0;i<pr.length;i++ ) {
var p = pr[i].indexOf('=');
if (p == -1) continue;
var n = pr[i].substring(0,p);
var v = pr[i].substring(p+1);
a[n] = unescape(v);
}
return a;
}
}
if( typeof( 'prepareurl' )!='function' ){
function prepareurl(u){
var p=u.split('?')[0].split('.')[0];
var q=u.split('?')[1];
var t=[p];
var o=getPairs( q, '&' );
for( k in o )t.push( o[k] );
return t.join('/');
}
}
alert( prepareurl( '/trip.php?id_trip=1234&continent=oceania' ) );
will return `/trip/1234/oceania`
答案 1 :(得分:0)
我不确定这与您的设置有多相关,但我建议使用一个很棒的微框架,Slim,这不仅有助于您的动态路线,还可以帮助您管理您的网络服务更容易。 设置Slim非常简单,请阅读以下文档:try here
使用Slim,您可以执行以下操作,您指向的网址,/ trip.php?id_trip = 1234&amp; conttinet = asia可以在此类路线中指定,
$app->get('/trip/{trip_id}/{continent}', function($request, $response, $args){
$trip_d = $args['trip_id'];
$continent = $args['continent']
//Do something
});
简单的说,任何与上述路线匹配的GET请求都会命中这个控制器,你可以在这个方法中做你的东西,而且Slim还内置了对Twig模板系统的支持,这恰好是管理你的一个很好的资源。视图。
如果你想设置没有任何框架的动态路由,你必须在.htaccess文件中使用重写规则,你可以在这里找到一些有用的信息:http://www.slimframework.com/ 我建议使用微框架而不是重新发明整个事情,希望这会有所帮助。