2016-10-03 5 views
0

私は以下の作業コードを持っています。基本的に、コードはオプションを50回印刷し、4はデフォルトで選択されたオプションです。PHPを使用してForループ内のSelect Optionの値を保持する方法

for ($i = 1; $i <= 50; $i++) { 
    if($i == 4){ 
    echo '<option value="' . $i . '" selected>' . $i . '%</option>'; 
    }else { 
    echo '<option value="' . $i . '">' . $i . '%</option>'; 
    } 
} 

ですが、[送信]ボタンをクリックするたびに、変数が適切に取得されていても、オプションフィールドは選択したオプションにリセットされます。

ボタンがクリックされた後でユーザーが選択したオプションが保持され、選択したデフォルトにリセットされるのは、ページが更新された場合だけです。

答えて

0

チェックデフォルト値。

コードの下に使用する:

$selected = (isset($_POST['select']) ? $_POST['select'] : 4); 
for ($i = 1; $i <= 50; $i++) { 
    if($i == $selected){ 
    echo '<option value="' . $i . '" selected>' . $i . '%</option>'; 
    }else { 
    echo '<option value="' . $i . '">' . $i . '%</option>'; 
    } 
} 
0

これは実行する必要があります。存在する場合はクライアントから送信された値を使用し、存在しない場合は4を使用します。投稿欄からoption

<form action="#" method="post" accept-charset="utf-8"> 
<select name="select"> 
<?php 
    if(isset($_POST['select'])) 
    { 
    $option= $_POST['select']; 
    } 
    else 
    $option=4; 
    for ($i = 1; $i <= 50; $i++) { 
    if($i == $option){ 
     echo '<option value="' . $i . '" selected>' . $i . '%</option>'; 
    }else { 
     echo '<option value="' . $i . '">' . $i . '%</option>'; 
    } 
    } 

?> 
</select> 
<input type="submit" name="" value="Sumbit"> 
</form> 
+0

コードは動作しますが、それは、私は、ユーザーがページを更新する際に達成したいものである4にデフォルト設定はありません。 – anagnam

+0

リフレッシュすると、ページに投稿された値が送信されます。ブラウザのアドレスバーにURIを貼り付けると、デフォルト値が使用されます。 – user2182349

0

テイク値は、「selectを」と言った後に存在し、それを取る場合は、変数に4を割り当てていない場合はそれ以外の場合は、あなたの選択としてvaluepostによって送信された場合

if (isset($_POST['selected_value'])) { 
    $selected = $_POST['selected_value']; 
} else { 
    $selected = 4; 
} 

for ($i = 1; $i <= 50; $i++) { 
    if($i == $selected){ 
    echo '<option value="' . $i . '" selected>' . $i . '%</option>'; 
    }else { 
    echo '<option value="' . $i . '">' . $i . '%</option>'; 
    } 
} 
+0

は、ページが表示されているときにデフォルトで4になりません。 – anagnam

+0

@anagnamあなたはhtmlコードを提供できますか? – ravisachaniya

関連する問題