如何从URL收集的变量,将它们插入到一个数组和动态改变的href网址吗?(How to collec

2019-09-22 12:06发布

如何从URL收集的变量,将它们插入到一个数组和动态改变的href网址吗?

我不是一个开发人员,所以请大家容易对我在这里! 我熟悉HTML和不差从各种渠道采取的代码段和拼凑在一起。 这是第一次,我曾经决定在这样一个博客寻求帮助,因为我已经环顾四周,似乎无法找到正是我需要的。 非常接近,又那么远..请帮助!

我想要做的是:

  1. 从这样的URL收集变量( wwww.myurl.com/index.html?var1=1&var2=2&var3=3等等等等。)

  2. 采取这些变量,并将它们插入到一个数组,同时剥出未需要的部分。 我发现这个代码,得到它,但它打印在屏幕上,这我不需要上..

     myurl.com/index.html?log=1&pass=2 

     function addComment() { var parameters = location.search.substring(1).split("&"); var temp = parameters[0].split("="); l = unescape(temp[1]); temp = parameters[1].split("="); c = unescape(temp[1]); document.getElementById("log").innerHTML = l; document.getElementById("pass").innerHTML = c; } addComment(); <p>http://www.myurl.com/</b><span id="log" ></span></p> <p>http://www.myurl.com/</b><span id="pass"></span></p> </script> 
  3. 动态改变基于从URL收集到的参数上飞A HREF标签。

我发现这个代码的伟大工程,以改变网址,但(一)变量是从一个输入表单收集和我需要能够把他们从URL。 (b)中我还需要几个人(也能像20),因此,需要一种阵列。

<input type="text" id="mySearchBox" />
<a href="http://www.myurl.com/index.html?" onclick="this.href+=+document.getElementById('mySearchBox').value">Enter Parameter</a>

(编辑的代码格式)


关于技术...我不停留在任何特定的语言或方法,但javascript和jQuery的似乎是最简单的我。 我没有做太多PHP和其他语言。 最简单的方法傻瓜,你可以提供更好的。

我敢肯定,这就像小学的东西,你在那里,但我似乎无法推测出来,所以你的建议,非常感谢!

Answer 1:

使用Javascript和jQuery的

该addComment函数的第一行从URL得到searchsrtring,至极从(与)的everething? 达(且不)的井号(#)或结束,如果没有散列。

第一个字符(?)与去除之后substr(1) 最后,串在每一个“&”与分裂.split("&") 所有splited部分存储在数组中。 在一个示例应用此:

www.myurl.com/index.html?var1=1&var2=2&var3=3

["var1=1", "var2=2", "var3=3"]

这个阵列被存储在变量参数。 接着该阵列的第一个元素在“=”字符被分裂。 我们得到

temp = ["var1", "1"]

温度的第二元件被转义(从URL特殊字符解码像%20为“”(空格))

要创建一个对象,首先创建一个空的对象,然后填满它是这样的:

var obj = {};

obj[ temp[0] ] = temp[1];

在做这从参数将让你的所有元素循环:

obj = { var1 : 1, var2 : 2, var3 : 3 }

你想要的对象。 这是一个非常简单的解析器,不得用于更复杂的数值正常工作。 这是上述的完整代码:

function getUrlObj() {
  var parameters = location.search.substring(1).split("&");
  var obj = {};
  for( var i = 0; i < parameters.length; ++i) {
    var tmp = parameters[i].split("=");
    obj[ tmp[0] ] = unescape( tmp[1] );
  }
  return obj
}

现在的链接:

你的榜样链接的onclick事件决定哪些URL被加载。 像这样的浏览器的状态栏将不会显示正确的目标是调试少用户友好的更加困难。 一种不同的方法(使用jQuery)将收集从页面的所有链接,并根据URL改变他们的HREF标记。 这可以在页面(或更好的DOM)已被加载后进行。 jQuery的例子可能是这样的:

$( function() { //called when dom is ready
  //get url object
  var urlObj = getUrlObj();
  //find all <a> elements on page
  // iterate over elements
  $('a').each(function() {
    // change attribute href
    $(this).attr('href', 'new url goes here');
  });
});

我猜你要插入的URL对象的某些部分在新的URL。 什么是href属性的初始值? 什么应该看起来像到底是谁?

初始值可以说明该URL如何必须改变。 属性的值可以用方法访问.attr('href')中的jquery(第二个参数会改变的值)。

所述的详细说明.attr()方法(及其它)可以jquery的文档中找到: http://api.jquery.com/attr/

如果你不想改变所有的链接元素,你可以申请一个类来要修改类的链接:

<a class="modify" href...

然后用存取权限的那些元件$('.modify')用点),而不是$('a')

PHP

如果你想用PHP做它的代码可能是简单了很多,因为PHP可以在本地处理的URL查询字符串。 例:

<a href="<?php echo $_GET["var1"]; ?>.php">link</a>

将导致到“1.PHP”你的榜样。

UPDATE:(根据意见的讨论)

所述搜索查询?iframe1=1&banner1=1&button1=1&button2=2&button3=3与URL一起发送到服务器。 PHP可以通过魔法直接访问搜索查询的数值变量$_GET如上指出。 $ _GET [ '按钮1']将是1。

要使用该文件的结尾,必须.PHP这样服务器就知道该文件的内容必须被计算的变量。 生成的文件将是一个普通的HTML文件(PHP的结尾)。

<?php表示后面的文本到?>是PHP代码。 echo "something"; 将打印字符串something到生成的HTML文件。 用于打印的东西到文档的快捷方式是<?="text" ?> 。 代替串能够被打印的可变的: <?=$somevar ?>

将此应用于html文件有更新,像这样的例子:

<a target="theiframe" href="www.mysite.com/redirect2external?<?=$_GET['button1'] ?>">a link</a>
<a target="theiframe" href="www.mysite.com/redirect2external?<?=$_GET['button2'] ?>">another link</a>

等等。 同为IFRAME(或横幅):

<iframe name="theiframe" src="www.mysite.com/redirect2external?<?=$_GET['iframe1'] ?>"/>

所有HTML文件合并成一个PHP文件的另一个(更好)的方式将有一个数字或代表一个页面的字符串。 如?page=somepage (尽量避免特殊字符和空格,它们可能无法正常工作)。

在PHP文件会有那么对所有页面的切换:

<?php if( $_GET['page'] == "somepage" ) { ?>
  <a target="theiframe" href="www.mysite.com/redirect2external?1">a link</a>
  <a target="theiframe" href="www.mysite.com/redirect2external?2">another link</a>
<?php } elseif( $_GET['page'] == "someotherpage" ) { ?>
  <a target="theiframe" href="www.mysite.com/redirect2external?3">a link</a>
  <a target="theiframe" href="www.mysite.com/redirect2external?4">another link</a>
<?php } //and so on (btw this is a php comment) ?>

这种方法的优点是:

  1. 较短的网址
  2. 在第一种方法,如果一个新的按钮以后添加你就必须改变所有链接到页面的URL添加buttonx = X。 另外,如果用户使用了书签(与旧的URL)导航到该网站另外的按钮是行不通的。


Answer 2:

伟大的jQuery插件查询字符串的阅读和修改: http://archive.plugins.jquery.com/project/query-object

只是用它来获得完成任务或检查它的来源得到的回答你的问题。



文章来源: How to collect variables from a URL, insert them into an array and dynamically change a href URLs?