Javascript 使用Jquery创建和获取动态url

Javascript 使用Jquery创建和获取动态url,javascript,php,jquery,dynamic-url,Javascript,Php,Jquery,Dynamic Url,我有一个页面single colur.html,它可以接受各种设置查询字符串,如下所示: single-colur.html?id=1 single-colur.html?id=2 single-colur.html?id=3 single-colur.html?id=4 上面的id引用了一个color表格,该表格包含以下列: id name content 当人们来到single colur.html并请求一个特定的ID时,我想从URL获取相应的ID,并向PHP页面发送一个AJAX请求,该

我有一个页面
single colur.html
,它可以接受各种设置查询字符串,如下所示:

single-colur.html?id=1
single-colur.html?id=2
single-colur.html?id=3
single-colur.html?id=4
上面的
id
引用了一个
color
表格,该表格包含以下列:

id
name
content
当人们来到
single colur.html
并请求一个特定的ID时,我想从URL获取相应的ID,并向PHP页面发送一个AJAX请求,该页面将根据提供的ID从我的表中获取相应的行,这是目前实现的

我的问题是:如果有人转到
single colur.html?id=1
,那么所有的数据都会被提取出来,并显示在一个新的URL中,该URL基于id引用的
name
字段,例如
single colur.html?id=1
指向一个名为
red.html
的动态创建的文件,并显示此ID的
颜色
表中的数据

我的限制是必须动态创建新文件,而不能静态创建

编辑

目前我有两页

1) 存档颜色.html

2) 单色.html

存档color.html中

<div>

 <a href="single-colour.html?id=1">Red</a>
 <a href="single-colour.html?id=2">Green</a>
 <a href="single-colour.html?id=3">Blue</a>

</div> 

single colur.html中?id=anynumber

<div class="result">

</div>

在single-colur.html中,我正在执行ajax,并使用请求的id从数据库中获取详细信息,并显示在classresult

这是目前的进程。但我需要的是

在单个colur.html中?id=anynumber

我必须用color-name.html替换当前页面url

并显示详细信息。[但问题是,服务器中没有color-name.html页面。也就是说,服务器中没有red.htmlgreen.htmlblue.html。它必须由jquery虚拟创建。]

所以您使用

window.location = window.location.hostname + "here put the returned from ajax" + ".html";
解释

window.location.hostname
返回网站url

使用Ajax:

$.ajax({
  url: "my-colours.html",
  type: "get", //send it through get method
  data: { 
    id: //<Your id here >
  },
  success: function(response) {
    window.location.href = '/' + response.color + '.html' ;
  },
  error: function() {
    //Do Something to handle error
  }
});
$.ajax({
url:“我的颜色.html”,
键入:“get”,//通过get方法发送
数据:{
身份证://
},
成功:功能(响应){
window.location.href='/'+response.color+'.html';
},
错误:函数(){
//做点什么来处理错误
}
});

我想这就是你要找的。这里,ajax将创建一个动态链接,您可以每次为Id提供一个动态值。

这个示例在这个环境中尽可能完整

  • 通过ajax点击加载
  • 设置内容
  • 设置虚拟url
$('a.virtual')。单击(函数(e){
var-link=$(这个);
log(“加载:“+link.attr('href'));
$.ajax({
url:link.attr('href'),
键入:“获取”,
成功:功能(响应){
//解析json或如何传输服务器数据
var result=parseJSON(响应);
var内容=结果[‘内容’];
var virtual_url=result['url'];
//设置内容
$('#content').html(content);
//设置虚拟url
window.history.pushState([],'Title',虚拟url);
}
});
//不要跟随链接!
e、 预防默认值();
返回false;
});


    • 通过ajax交付的内容:

是的,这是可能的。为什么不在php中使用
$\u REQUEST['id']
等@abilasher我已经更新了您的问题,但是,您必须包含相关的代码和信息,例如您现有的编码尝试。其次,有更好的方法来实现这一点,而不是创建一个新页面,您可以通过一个页面完成这一切,并返回表信息的JSON响应,然后将其输出到div中。@abilasher我阅读了所有内容、所有注释,但仍然不清楚您希望发生什么。其中有些听起来像是在寻找URL重定向,但接下来您要说的是调用AJAX来收集新的HTML。你能不能解释一下你想完成什么,不是用代码,而是在更高的层次上。@abilasher如果这一切都是通过AJAX完成的,为什么你需要
red.html
等等?是否希望浏览器导航到不存在(动态创建)的名为red.html的页面?对不起,朋友,你不明白我的意思。实际上,我的重点是如何创建虚拟/动态url。这与使用php或jquery获取内容无关。如果有人单击my colors.html?id=1,那么以red.htmlaha显示数据,那么ajax返回什么
red
?因此您希望将浏览器地址栏更改为
domain.com/red.html
?是:)。这是我想要的,并以红色显示相应的数据。html
window.location.href
不起作用,因为他想留在他所在的页面上。所以他不得不这么做,但他没有提到任何关于重新加载的事情。所有数据都会根据名称提取并显示在新的URL中。我的限制是,我必须动态创建新文件,而不能静态创建。据我所知,这意味着该文件实际上并不存在。To内容通过ajax从db加载并显示在一个容器中-url随后更改为任何内容。因此,它看起来只是一个静态+现有页面,所以我猜他必须在服务器端创建一个包含动态内容的页面,并每次以相同名称作为响应发送。在这里,您创建了动态链接,这是正确的。动态链接中的内容如何?如何向该动态链接插入内容?