当我点击下面代码呈现的页面上的提交按钮时,我希望我的网址看起来像
locl.cms.com/upload/season.php?sid=20¤tPage=1
echo '<form action="" method="get">
<button id="previouspage" name="'.$encodedURL.'" type="submit"
value="'.$page.'">Previous Page</button>
<button id="nextpage" name="currentPage" type="submit"
value="'.$pageN.'">Next Page</button>
</form>';
echo "Inside Div";
echo '</div>';
其中
$url='sid='.$sid.'¤tPage';
$encodedURL=urlencode($url);
当我点击Previous Page
按钮时,我的网址变为locl.cms.com/upload/season.php?sid%253D20%2526currentPage=1
我做错了什么?
答案 0 :(得分:0)
当您使用method="get"
提交表单时,表单的action
属性将成为URL,并且包含按钮的表单输入元素会为附加到URL的name=value
查询字符串做出贡献,然后被发送到服务器。这里的名称和值将被URL编码(这就是你在OP中看到的特殊字符)。
// The URL making pseudo code ( run by the browser )
if ( form.method is-fully-qualified-with-protocol-etc )
base_url = form.action
elseif ( form.action is-full-path-begining-with-forward-slash )
base_url = page.protocol+'://'+page.url.hostname+':'page.url.port+form.action
elseif ( form.action is-a-relative-path-or-blank )
base_url = page.url+form.action
encoded_form_input = ''
for-each ( form.input_elements as input_element )
encoded_form_input += urlencode(input_element.name) + '=' + urlencode(input_element.value) + '&'
final_url = base_url + '?' + encoded_form_input;
编码到URL中的输入集的一个例外是button
输入,它只是您按下的按钮。其他按钮被忽略。
这有希望给你一些指示,指出为什么你没有得到你期望的URL。