2017-05-30 10 views
1

私は基本的にオプションの値をデータベースに更新する以下のPHPスクリプトを持っています。オプションselectの値をコピーしたい場合、スクリプトは機能します。ただし、代わりにテキストをコピーしたい場合は機能しません。オプション選択の値の代わりにスクリプトにテキストをコピーさせるためには、何を変更する必要がありますか?たとえば、ユーザーが「Second」を選択した場合、スクリプトは「2」ではなく「Second」を単にコピーします。前もって感謝します。PHPコピー要素のテキストと値の比較

<div class="controls"> 
    <i class="fa fa-sort"></i> 
    <select class="floatLabel" name="prop_class" required> 
    <option value="">None</option> 
    <option value="Inline">First</option> 
    <option value="2">Second</option> 
    <option value="Last">Third</option> 
    </select> 
    <label for="prop_class">Property Class</label> 
</div> 

PHPスクリプト:

<?php 
$options = [ 
    'Inline' => 'First', 
    '2' => 'Second', 
    'Last' => 'Third' 
]; 

そして挿入するときに適切な値を選択します:

$cn = "235Miami"; 
$prop_class = $_POST['prop_class']; 
$stmt1 = $DB_CON_C->prepare('UPDATE account 
      SET prop_class=:prop_class 
      WHERE cn=:cn'); 
$stmt1->bindParam(':cn', $cn, PDO::PARAM_STR); 
$stmt1->bindParam(':prop_class', $prop_class, PDO::PARAM_STR); 
$stmt1->execute(); 
+0

'

+2

フォームを送信すると、テキストだけでなく値が送信されます。 – Barmar

+0

テンプレートなどのマッピングを使用します。その場合は、値をラベルとコントラ対に変換することができます。 – FieryCat

答えて

0

オプションは次のようにマップ作成

$key = $_POST['prop_class']; 
$option = isset($options[$key]) ? $options[$key] : 'default value'; 
+0

ありがとう!このメソッドは機能します。私はこの単純なタスクを行う方法が必要であることを知っていた、そうでなければPHPの制限は疑わしいです。アントンに感謝します。 – javystar

0

ヨフォームが提出されるときに、選択フィールドで選択されたオプションのテキストを取得するためにJavascriptを使用することができます。または、選択肢内のオプションに値を渡すことができます。

<option value="Second">Second</option> 
関連する問題