2017-04-30 2 views
0

データを含む選択ボックスを含むフォームを、投稿を含む同じPHPページに投稿したフォームを作成しました。選択ボックスは、その値が投稿の値を比較することによってユーザによってデフォルトから変更されたことがチェックされる。それらが設定されていない場合は、フォームが再表示されますが、選択ボックスはデフォルト値に戻ります。<select>オプションを以前の値にリセットする

投稿データを使用して、ユーザーに不便を避けるためにフォームが送信されたときに、ユーザーが投稿した方法をボックスに戻す方法を教えてください。

//<form> etc... 
<h2 >Choose your favourite colour</h2> 

      <select name="colour"> 
       <option value="0">Choose a colour:</option> 
       <option value="1">Beige</option> 
       <option value="2">Sand</option> 
       <option value="3">Tan</option> 
      </select> 
//more form code 

フォームを再送信したときにポストの値がチェックされます

if (isset($_POST['colour'])) { 
    $colour = $_POST['colour']; 

    if($colour != 0) { 
     //data is all set, redirect 
    }else { 
     // no value has been set, redisplay form 
    } 
} 

任意の提案を?ここ

+0

セッションに保管して新たな価値を行きます。 –

+1

PHPから設定できます: ' ' –

+1

三元演算子は、アウトラインとして使用することもできます^ –

答えて

0
/<form> etc... 
<h2 >Choose your favourite colour</h2> 

      <select name="colour"> 
       <option value="0" selected=<?php if($_POST['colour']){$state} else{ echo 'false'} ?> >Choose a colour:</option> 
       <option value="1">Beige</option> 
       <option value="2">Sand</option> 
       <option value="3">Tan</option> 
      </select> 
//more form code 

は、PHPコード

if (isset($_POST['colour'])) { 
    $colour = $_POST['colour']; 
    $state = 'false'; 

    if($colour != 0) { 
     //data is all set, redirect 
    }else { 
     // no value has been set, redisplay form 
     $state = 'true'; 
    } 
} 
関連する問題