2017-01-17 7 views
0

データがデータベースに存在する場合は、読み取り専用にドロップダウンを試みました。しかし、私はそれを読み取り専用にしても、ユーザーはドロップダウン値を意味する値を変更することができます。私はそれを無効に変更しました。しかし、これでは、私は提出後に値を受け取ることができません。ここに私のコードは塗りつぶしドロップダウン値の読み取り専用

<select name="sign" <?php echo empty($row['sign']) ? '' : 'readonly' ?> class="form-control"> 
     <option value="<?php echo $row['sign']; ?>"><?php echo $row['sign']; ?></option> 
     <?php $m1 = mysqli_query($con, "SELECT * FROM signs"); 
     while($m2 = mysqli_fetch_array($m1)) { ?> 
     <option value="<?php echo $m2['sign']; ?>"><?php echo $m2['sign']; ?></option> 
     <?php } ?> 
     </select> 

どのように私はそれを解決することができますか?

+0

他の解決策は、選択を変更するからユーザーを防ぐためである、多くのjavascriptのオプションがあり、これを試してみてくださいクライアント側のコードはすべて操作できます。編集しないようにしたい場合は、サーバーでこれを行うことを強くお勧めします。クライアントに何かを信用しないでください。 – McStuffins

+0

あなたは、私はデータベースに提出している間にそれをチェックすべきだと言っているのですか? – user3368088

+0

はい。私は非常にそれをお勧めし、それは "良い練習"と言われています – McStuffins

答えて

0

は、私はこの問題は多分uはこの<?php echo (empty($row['sign']) ? '' : 'readonly'); ?>

0

一つの解決策を行うことができ、この<?php echo empty($row['sign']) ? '' : 'readonly' ?> であるあなたは、それを無効にします同じ名前と値を持つ別の隠し入力を追加するときだと思います。

http://jsfiddle.net/qk2Pc/

は、HTML::

<select id="my_select"> 
    <option>Option 1</option> 
    <option>Option 2</option> 
</select> 

JS:

my_condition = true; 
var lastSel = $("#my_select option:selected"); 

$("#my_select").change(function(){ 
    if(my_condition) 
    { 
    lastSel.attr("selected", true); 
    } 
}); 

$("#my_select").click(function(){ 
    lastSel = $("#my_select option:selected"); 
}); 
+1

StackがここでURLを使用させなかったのは、そのためのコードも必要だからです。だから次回jsfiddleを提案するときにそれを加えてください。私はいつもここにいるわけではありません;-)(私はあなたのためにそれを追加しました)。 –

+0

@Nikolay Ganovski:私はsubmit.phpというページを通してデータベースにデータを提出しています。どこでそれを言わなければならないのですか? – user3368088

+0

の直後に、 ">。したがって、あなたの選択に '無効'を使用する場合。 –

関連する問題