我很难在link_to UrlHelper中添加查询字符串参数.我有一个索引视图,例如,它具有用于排序,过滤和分页的UI元素(通过will_paginate).will_paginate插件正确管理查询字符串参数的页内持久性.
是否有自动机制将查询字符串参数添加到给定命名路由,或者我是否需要手动执行此操作?对这个看似简单的结构的大量研究让我一无所知.
编辑
一些挑战:
如果我有两个查询字符串参数,存储桶和排序,如何在link_to中为其中一个设置特定值,同时保留另一个的当前值?例如:
<%= link_to "0", profiles_path(:bucket => '0', :sorting=>?? ) %>
Run Code Online (Sandbox Code Playgroud)如果我有多个查询字符串参数,bucket&sorting&page_size,并且我想将值设置为其中之一,是否有办法'自动'包含其余参数的名称和值?例如:
<%= link_to "0", profiles_path(:bucket => '0', [include sorting and page_size name/values here] ) %>
Run Code Online (Sandbox Code Playgroud)will_paginate插件自动管理其页面变量和其他查询字符串变量.似乎没有用于管理页面大小的自动UI元素.虽然我已经看到了创建页面大小选择列表的代码,但我宁愿为此设置A元素(如SO).这个挑战的一部分与#2有关,部分与基于记录的存在/不存在隐藏/显示该UI元素有关.换句话说,如果有页面记录,我只想包含页面大小的链接.此外,我更喜欢自动包含其他QS变量(即页面,存储桶,排序),而不必在link_to中按名称包含它们.
我使用PHP来构建当前页面的URL.有时,URL的形式
www.mydomian.com/myurl.html?unwantedthngs
Run Code Online (Sandbox Code Playgroud)
请求.我想删除?它后面的所有内容(查询字符串),以便生成的URL变为:
www.mydomain.com/myurl.html
Run Code Online (Sandbox Code Playgroud)
我目前的代码是这样的:
<?php
function curPageURL() {
$pageURL = 'http';
if ($_SERVER["HTTPS"] == "on") {
$pageURL .= "s";
}
$pageURL .= "://";
if ($_SERVER["SERVER_PORT"] != "80") {
$pageURL .= $_SERVER["SERVER_NAME"] . ":" .
$_SERVER["SERVER_PORT"] . $_SERVER["REQUEST_URI"];
} else {
$pageURL .= $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"];
}
return $pageURL;
}
?>
Run Code Online (Sandbox Code Playgroud) 我试图发送一个包含带&符号字符串的GET消息,但无法想象如何在URL中转义&符号.
例:
http://www.example.com?candy_name=M&M
result => candy_name = M
Run Code Online (Sandbox Code Playgroud)
我也尝试过:
http://www.example.com?candy_name=M\&M
result => candy_name = M\\
Run Code Online (Sandbox Code Playgroud)
我手动使用URL,所以我只需要正确的字符.
我不能使用任何库.怎么做到呢?
我想解析一个字符串,如p1=6&p2=7&p3=8一个NameValueCollection.
当您无法访问该Page.Request对象时,最优雅的方法是什么?
我有这个网址:
site.fwx?position=1&archiveid=5000&columns=5&rows=20&sorting=ModifiedTimeAsc
Run Code Online (Sandbox Code Playgroud)
我需要的是能够将'rows'url param值更改为我指定的内容,比方说10.如果'rows'不存在,我需要将它添加到url的末尾并添加价值我已经指定(10).
有人能够以简单的方式解释如何让jQuery发送实际的JSON而不是查询字符串吗?
$.ajax({
url : url,
dataType : 'json', // I was pretty sure this would do the trick
data : data,
type : 'POST',
complete : callback // etc
});
Run Code Online (Sandbox Code Playgroud)
实际上,这会将您精心准备的JSON转换为查询字符串.令人讨厌的事情之一是,array: []您的对象中的任何内容都将被转换为array[]: [],可能是因为查询sting的限制.
我正在尝试查找有关如何序列化对象以查询字符串格式的信息,但我的所有搜索都在结果中淹没了如何以其他方式(字符串/表单/任何JSON).
我有
{ one: 'first', two: 'second' }
Run Code Online (Sandbox Code Playgroud)
而且我要
?one=first&two=second
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?我不介意插件或其他东西 - 如果我发现的代码不是插件,我可能会重新写一个...
我在列表中设置了类似于下面的URL
我已设法使用以下代码获取查询字符串:
myurl = longurl.Split('?');
NameValueCollection qs = HttpUtility.ParseQueryString(myurl [1]);
foreach (string lol in qs)
{
// results will return
}
Run Code Online (Sandbox Code Playgroud)
但它只返回基于提供的URL的id,server,location等参数 .
我需要的是添加/追加现有查询字符串的值.
例如,使用URL:
http://somesite.com/backup/index.php?action=login&attempts=1
我需要更改查询字符串参数的值:
行动= login1
尝试= 11
如您所见,我为每个值附加了"1".我需要从包含不同查询字符串的字符串中获取一组URL,并在最后为每个参数添加一个值,然后再将它们添加到列表中.
有人知道编写jQuery扩展来处理查询字符串参数的好方法吗?我基本上想扩展jQuery魔术($)功能,所以我可以这样做:
$('?search').val();
Run Code Online (Sandbox Code Playgroud)
这将使我在下面的网址值"测试": http://www.example.com/index.php?search=test.
我已经看到很多函数可以在jQuery和Javascript中执行此操作,但实际上我希望扩展jQuery以完全按照上面所示的方式工作.我不是在寻找一个jQuery插件,我正在寻找jQuery方法的扩展.
query-string ×10
javascript ×4
jquery ×3
url ×3
http ×2
.net ×1
c# ×1
get ×1
html ×1
json ×1
parameters ×1
parsing ×1
php ×1
url-parsing ×1