0
我有一個3步(3頁)的窗體。第一頁,要求用戶檢查5個最喜歡的音樂流派。第二頁動態顯示已檢查的流派,然後要求對它們排序,第三頁按順序顯示其音樂流派偏好。使用javascript來防止動態生成的輸入文本框的重複值
我的問題是我如何使用javascript來防止在第二頁上動態生成輸入文本框的重複值?
我發現這個代碼(http://jsfiddle.net/zHJSF/),如果我的文本框字段已設置,但文本框字段正在動態生成將工作。調整代碼或者做一些與循環有關的事情可能會更容易。我不確定。
下面是用於三個頁面的代碼:
<form id="genre" name="genre" method="post" action="musicsell.php">
<input type="checkbox" name="genre[]" id="Rap" value="Rap"/>Rap<br />
<input type="checkbox" name="genre[]" id="HipHop" value="HipHop"/>HipHop<br />
<input type="checkbox" name="genre[]" id="RnB" value="RnB"/>RnB<br />
<input type="checkbox" name="genre[]" id="Rock" value="Rock"/>Rock<br />
<input type="checkbox" name="genre[]" id="Jazz"value="Jazz"/>Jazz<br />
<p>
<input type="submit" value="Next">
<br />
</p>
</form>
頁2
<form id="form1" name="form1" method="post" action="musicresults.php">
<?php
$name = $_POST['genre'];
if(isset($_POST['genre'])) {
foreach ($name as $genre){
?>
<input type="number" required="required" id="<?php echo $genre ?>" name="music[<?php echo $genre ?>]" max="3" min="1" /><?php echo $genre ?><br />
<?php
}
}
?>
<input type="submit" name="button" id="button" value="Submit" /></form>
頁3
<?php
//Get the form results (which has been converted to an associative array) from the $_POST super global
$musicgenres = $_POST['music'];
//Sort the values by rank and keep the key associations.
asort($musicgenres, SORT_NUMERIC);
/*
//Loop over the array in rank order to print out the values.
foreach($musicgenres as $music => $rank)
{
echo "$music is your $rank choice";
echo "<br>";
}*/
foreach($musicgenres as $music => $rank)
{
array_push($musicstring, $music);
echo "$music is your $rank choice";
echo "<br>";
}
$musicstring = implode(", ", $musicgenres);
echo $musicstring;
?>
你可以只使用'array_unique'在PHP中:'$名稱= array_unique($ _ POST [ '風格']);' –
根據W3schools的array_unique函數將刪除重複但不阻止他們.http://www.w3schools.com/php/func_array_unique.asp – user3506743