[英]Beginner's PHP Question: Using method=“get” with checkboxes
我有這樣的形式:
<form action="video-sort.php" method="get">
<h3>Game</h3>
<ul>
<li><input id="game-180man" type="checkbox" name="game" value="180man">180man</li>
<li><input id="game-18man" type="checkbox" name="game" value="18man">18man</li>
<li><input id="game-mtt" type="checkbox" name="game" value="MTT">MTT</li>
</ul>
<h3>Type</h3>
<ul>
<li><input id="type-lecture" type="checkbox" name="type" value="Lecture">Lecture</li>
<li><input id="type-liveplay" type="checkbox" name="type" value="Liveplay">Liveplay</li>
<li><input id="type-tutorial" type="checkbox" name="type" value="Tutorial">Tutorial</li>
</ul>
<input type="submit" />
</form>
如果每個集合的第一個被選中,我得到的URL:
video-sort.php?game=180man&type=Lecture
大! 但是,當選中每個類別中的多個復選框時,我得到(例如,如果我全部選中):
video-sort.php?game=180man&game=18man&game=MTT&type=Lecture&type=Liveplay&type=Tutorial
不好! 它只接受最后一個參數。
另外,我嘗試了一種形式,其中name=game[]
和name=type[]
但URL最終只是在名稱中添加了方括號(例如: video-sort.php?game[]=180man&game[]=18man
而不是將它們放在一起。
我想讀取以下網址:
video-sort.php?game=180man,18man,MTT&type=Lecture,Liveplay,Tutorial
我該怎么做? 任何幫助將不勝感激!
編輯:這是針對Wordpress網站的。 據我所知,我正在創建一個后置過濾器,並使Worpdress理解該查詢,該參數必須位於以逗號分隔的列表中。 如果使用方括號,則會出現錯誤:
Warning: preg_split() expects parameter 2 to be string, array given in /wp-includes/query.php on line 1694
(該文件的來源: http : //phpxref.com/xref/wordpress/wp-includes/query.php.source.html )
沒錯
?game[]=180man&game[]=18man
只是將鍵添加到數組。 保持那樣。
正確的方法實際上是使用數組語法(game []),這樣,在video-sort.php代碼中,您可以像這樣獲取整個數組:
$games = $_GET['game'];
foreach ($games as $game) {
// do something
}
如果確實需要將game參數設置為以逗號分隔的列表,則可能要使用javascript(即jquery)來獲取檢查值列表,創建列表,然后將其附加到表單中。 太多的工作,太容易出錯。 如果您的其中一款游戲的值是逗號怎么辦?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.