2016-07-02 3 views
-1

Я получаю данные с php из базы данных, конвертируя их в js-массив, используя json_encode. Все хорошо. Но в массиве есть 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

ah sorry Мне нужна помощь с логикой и синтаксисом, возможно .. спасибо – swipeales

+0

'x',' y' и 'z' должны быть в кавычках , а сравнения в операторах if должны быть с '===', а не с '=' (что делает назначение). Вы установили значение поля 'goldtype' с помощью' goldtype.val (exchange [0]) ', а не' = '. – nnnnnn

ответ

1

Пожалуйста, попробуйте быть более явным, когда просят о помощи, потому что не только он сохраняет время других людей, но также снижает c что ваш вопрос был занижен и уволен.
Я придумал что-то такое, что я должен ответить на вашу проблему, а если нет, скажите об этом.

В следующем коде определяется, какая из опций была выбрана, и умножает сумму на обменное значение того же индекса.

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

Я также бросил в куске кода, который изменяет свои параметры в соответствии с обменным массивом при первом нажатии на массиве (надеюсь, что поможет).

Код кодекса here.

+0

это хорошо, но вы основываете его на числе. Я храню число в массиве (база данных), и я не хочу отображать целое число в раскрывающемся списке, но как String. И затем в зависимости от того, какая строка была выбрана, возьмите целое число из массива. – swipeales

+0

Nwm вы скрипт работает над массивом, но он не работает с массивом из php! благодаря – swipeales

Смежные вопросы