我想用笨的URL是這樣的:如何使用笨,使用Javascript強制逗號的URL和GET形式
example?type=1,2,3,4
我可以手動輸入此命令,並導航到URL這樣,系統行得通。然而,我有一個使用GET的表單,我想發佈多個值的類型。我正在使用Javascript來加入輸入。
<form action="example" method="GET" id="type-form">
<select multiple="multiple" name="_type[]" id="type-array-id-1">
<option value="1">Type 1</option>
<option value="2">Type 2</option>
<option value="3">Type 3</option>
<option value="4">Type 4</option>
<option value="5">Type 5</option>
</select>
<input type="hidden" name="type" id="type-comma-sep"/>
<input type="submit" value="Get" />
</form>
<script>
$("#type-form").bind("submit",function(){
var type_array = $("#type-array-id-1").val().join(",");
$("#type-array-id-1").val("");
$("#type-comma-sep").val(type_array);
});
</script>
我用一些其他的SO問題的答案,讓我這麼遠,但是當我提交表單,我得到:
example?type=1%2C2%2C3%2C4
我的後端依賴「」存在於網址。那麼我怎麼能強制逗號進入URL?
我也試着重寫htaccess的(雖然甚至不知道這是正確的):
RewriteCond %{REQUEST_URI} ^([^\%2C]*)\%2C(.*)$
RewriteRule .* %1,%2 [R=301,L]
而且我嘗試使用encodeURIComponent方法(type_array)與encodeURI(type_array),但它從未作出了區別。
,是我在笨設置如下:
$config['permitted_uri_chars'] = 'a-z 0-9~%.,:_\-';
和系統/庫中/ input.php
if (! preg_match('/^[a-z0-9,:_\/-]+$/i', $str))
所以......
- 我怎麼能強迫URL中的逗號(Javascript更可取)?
- 該解決方案是否可以跨瀏覽器工作?
你的後端絕對不得不依賴逗號存在嗎?你不能直接使用'$ _GET'數組嗎?或者你能解碼'$ _GET ['type']'的值嗎? – froddd
不,它不需要,因爲我可以改變它,但我的理解是從一個常見的/良好的做法URL設計,然後type = 1,2,3更好 – gelviis
@GregorMcKelvie我從來沒有聽說過。我會建議使用GET數組,而不是'爆炸'一個字符串。 –