因此,我的很多表单系统都会重定向回到上一页,但是,它们会在此过程中显示一条消息。我显示消息的方式是在?message=messageCode
中使用URL
。
但是,如果他们使用已经有查询字符串的页面中的表单,它会添加第二个查询字符串,搞乱一切。
实施例:
如果我要从导航栏登录URL
“mywebsite.com/something?message=1
”,则会登录,但会重定向到“mywebsite.com/something?message=1?message=2
”
这样不会显示任何消息。
我在这里问的是,如何在第一个问号之后更改所有问号,并签名?
实施例:
来自:mywebsite.com/page?blah=1?something=2?hi=3
收件人:mywebsite.com/page?blah=1&something=2&hi=3
我已经四处寻找,并尝试过我自己的一些方法,但似乎没有任何工作正常。
答案 0 :(得分:1)
您应该做的是构建一个正确的网址,在适当的时候附加?
或&
。
$url = 'mywebsite.com/something?message=1';
$new_url = sprintf('%s%s%s',
$url,
strpos($url, '?') === false ? '?' : '&',
http_build_query(['message' => 2])
);
或者,首先解析先前的URL并合并查询字符串。
答案 1 :(得分:0)
使用如下: -
<% @pictures.each do |picture| %>
<li>
<div class="thumbnail">
<%= link_to image_tag(picture.asset.url(:small)), album_picture_path(@user, @album, picture) %><br /><br />
<div class="caption">
<% if picture.caption? %><%= picture.caption %><br /><br /><% end %>
<%= link_to 'View full size', album_picture_path(@user, @album, picture) %>
<% if can_edit_picture?(picture) %>
<%= link_to "Edit", edit_album_picture_path(@album, picture) %>
<%= link_to "Delete", album_picture_path(@album, picture), method: :delete, data: { confirm: "Are you sure?" } %>
<% end %>
</div>
</div>
</li>
输出: - https://eval.in/388308