2016-07-26 2 views
2

私の最初の質問は、適切でない場合は無視してください。PHPドロップダウン問題

私は値を選択するために使用されるphpでコード化されたドロップダウンを持っています。設定された値は「オフ」、0,1,2、... 179(つまり合計181個の値)です。

最初は、ドロップダウンですべての181の値が正しく表示されます。

ドロップダウンから値を選択した後、他のボタンを押してmysqlプロシージャを呼び出します。コールの完了時に、ページがリフレッシュされます。

ドロップダウンは、選択した値をページの更新中に保持することになっています。ユーザーは値を変更することが許可される必要があります。

最初のページをリフレッシュした後、ドロップダウンから別の値を選択しようとすると、以前に選択した値が181回あります。

以下はコードですが、誰かがそれを修正するのを手伝ってください。

私はPHPプログラマーではなく、私のリソースがそこに残っている不具合を修正しようとしています。

<select style="width: 87px; height:35px;color:#113C83;margin-bottom:0;border-right-width:0;" id="angle1"> 
<option value="Off">Off</option> 
<?php 
for($i=0;$i<=179;$i++) 
{ 
     if(isset($_SESSION['angle1'])) 
     { 
     ?> 
     <option value="<?php echo $_SESSION['angle1']; ?>" selected><?php echo $_SESSION['angle1']; ?></option> 
     <?php 
     } 
     else 
     { ?> 
    <option value="<?php echo $i; ?>"><?php echo $i; ?></option> 
    <?php 
     } 
    } ?> 
</select> 

+0

ますのでですすでに '$ _SESSION ['angle1']'をセットして、 'isset($ _ SESSION ['angle1'])'を真にして、 'else'条件には一度も行きませんでした。 –

+0

ifステートメントを 'if(isset($ _ SESSION ['angle1'])&& $ i == $ _SESSION ['angle1'])に変更するのが速くて汚れていませんか? – Drakes

+0

@ HardysonArthy:修正できましたあなたの入力に基づいて、それは働いた。どうもありがとう。 – kpv

答えて

1

作るために三項演算子を使用することによって、かなりあなたのコードを簡素化:

<select style="width: 87px; height:35px;color:#113C83;margin-bottom:0;border-right-width:0;" id="angle1"> 
<option value="Off">Off</option> 
<?php 
for($i=0;$i<=179;$i++) 
{ 
     if(isset($_SESSION['angle1']) && ($i == $_SESSION['angle1'])) //when you refresh isset($_SESSION['angle1']) will be always true 
     { 
     ?> 
     <option value="<?php echo $_SESSION['angle1']; ?>" selected><?php echo $_SESSION['angle1']; ?></option> 
     <?php 
     } 
     else 
     { ?> 
    <option value="<?php echo $i; ?>"><?php echo $i; ?></option> 
    <?php 
     } 
    } ?> 
</select> 
2

あなたはそれが含まれている値は、現在のループカウンタと一致していることを$i

isset($_SESSION['angle1']$_SESSION['angle1']のexistanceをテストしたがされていませんこれはそれを想定して、正しくテストするためです$_SESSION['angle1']には、前に選択した角度の値が含まれます。

これはまた、あなたが正しい条件を指定していないためだという決断

<select style="width: 87px; height:35px;color:#113C83;margin-bottom:0;border-right-width:0;" id="angle1"> 
    <option value="Off">Off</option> 
<?php 
    for($i=0; $i <= 179; $i++) { 
     $sel = isset($_SESSION['angle1']) && $_SESSION['angle1'] == $i ? 'selected="selected" : ''; 

     echo '<option ' . $sel . ' value="' . $i . '">' . $i .'</option>';  
    } 
?> 

関連する問題