2016-07-02 7 views
-1

データベースからPHPでデータを取得していて、json_encodeを使用してjs配列に変換しています。すべての良い。しかし、配列内に4つのインデックスがあり、私はhtmlのユーザーの選択に応じて特定のインデックスを使用しようとしています。 jquery/jsでこれをやりたいより深い説明のためのコードを見てください!配列からユーザーの選択に応じて交換価格を計算します

jsfiddle:EDIT:jsfiddle

で更新構文

https://jsfiddle.net/Lqd9vjnh/2/

HTML

<label for="amount"><h3><i class="fa fa-database">&nbsp;Amount</i></h3></label> 
            <input type="text" class="form-control" id="amount" name="gpamount" required> 

<select class="form-control" name="goldtype" style="margin-top:30px; width: 70%;" id="goldtype"> 
              <option value="x">Val1</option> 
              <option value="y">Val2</option> 
              <option value="z">Val3</option> 
             </select> 

         <label for="price"><h3><i class="fa fa-database">&nbsp;Price</i></h3></label> 
             <input type="text" class="form-control" id="price" > 

JS/jQueryの

var amount = $('#amount'), 
    goldtype = $('#goldtype'), 
    exchange = ["0.5", "1.5", "3.5", "$"] //I will set static array here. //<?php echo json_encode($exchangeRates);?>, 
price = $('#price'); 

var choice = goldtype.val(); 
if (choice = x) { 
    goldtype = exchange[0]; 
} 
if (choice = y) { 
    goldtype = exchange[1]; 
} 
if (choice = z) { 
    goldtype = exchange[2]; 
} 

amount.add(goldtype).on('change input', function() { 
    price.val(function() { 
    return (amount.val() * goldtype.val().toFixed(2) + '') 
    }) 
}); 
+2

*「詳細なコードを見てください」*。いいえ、このコードが何を期待しているかについて適切な説明を提供してください。壊れたコードは、適切な説明の代用ではありません。デモはスローされたエラーのために壊れています。問題のコードは書式設定の不足により読みにくいです – charlietfl

+0

ああ申し訳ありませんが、ロジックと構文の助けが必要です..ありがとう – swipeales

+0

'x'、' y'、 'z'は引用符if文の比較は '='ではなく、 '='(割り当てを行います)でなければなりません。 'goldtype'フィールドの値を' goldtype.val(exchange [0]) 'で設定し、' = 'では設定しません。 – nnnnnn

答えて

1

助けを求めたときに、より明示的なことしてみてください理由はありません他人の時間を節約するだけですが、それはまた、あなたの質問の賛否両論は下落し、却下されています。
私はと思っています。があなたの問題の答えになるはずです。

次のコードは、どのオプションが選択されたかを調べ、その値を同じインデックスの交換値に乗算します。

goldtype.change(function() { 
    var exchangeIndex = $("select[name='goldtype'] option:selected").index() 
    price.val(amount.val() * exchange[exchangeIndex]); 
}) 

私はまた、あなたが最初の配列(お役に立てば幸いです)をクリックしたときに交換配列に応じて、あなたのオプションを変更するコードの一部に投げました。

codepen hereがあります。

+0

これはいいですが、数字に基づいています。配列(データベース)に数値を格納していますが、ドロップダウンで整数を表示するのではなく、文字列として表示します。そして、選択された文字列に応じて配列から整数を取る。 – swipeales

+0

あなたはスクリプト上で動作しますが、phpの配列では動作しません!ありがとう – swipeales

関連する問題