2016-01-05 2 views
2

Я разрабатываю приложение на PHP, в котором мне нужно преобразовать значения, такие как 1-1-1, взятые у пользователя, используя select в три разных тайминга, например 9 AM, 3 PM, 9 PM.Преобразование значения 1-1-1 в три разных тайминга

Следующий мой html-код. Пожалуйста, предложите мне несколько способов.

<select name="dos" id="dos1"> 
    <option>1-0-1</option> 
    <option>0-0-1</option> 
    <option>1-1-1</option> 
    <option>1-0-0</option> 
    <option>0-1-0</option> 
    <option>1-1-0</option> 
</select> 

Если 0-0-1 только тогда 9 PM должен быть напечатан.

+6

Использовать атрибут 'value''

+0

Спасибо за ответ, но это помогло, но теперь, если значение опции выбора происходит из базы данных. – Jay

ответ

1

Как @Tushar предложил, получить выбранное значение на change случае выбора после добавления соответствующего value в <option>, следующим образом:

$('#dos1').change(function(){ 
 
\t $('#result').empty(); 
 
\t if($(this).val() != -1) 
 
\t \t $('#result').html($(this).val()); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<select name="dos" id="dos1"> 
 
    <option value="-1">--Select--</option> 
 
    <option value="9 AM, 9 PM">1-0-1</option> 
 
    <option value="9 PM">0-0-1</option> 
 
    <option value="9 AM, 3 PM, 9 PM">1-1-1</option> 
 
    <option value="9 AM">1-0-0</option> 
 
    <option value="3 PM">0-1-0</option> 
 
    <option value="9 AM, 3 PM">1-1-0</option> 
 
</select> 
 

 
<div id="result"></div>

Fiddle DEMO

Обновление:
Если значения базы данных в формате 1-1-1, а затем установить value атрибут, как вы настраиваете для отображения HTML и в методе JavaScript, ломают выбранное значение в массиве и заменить индексированный 0/1 с указанным значением, следующим образом:

$('#dos1').change(function(){ 
 
    $('#result').empty(); 
 
    
 
    if($(this).val() != -1){ \t 
 
     var result = ""; 
 
     var valArray = $(this).val().split('-'); 
 
    
 
     if(valArray[0] == 1) 
 
    \t  result += "9 AM, "; 
 
    
 
     if(valArray[1] == 1) 
 
    \t  result += "3 PM, "; 
 
     
 
     if(valArray[2] == 1) 
 
    \t  result += "9 PM"; 
 
     
 
     // Remove last comma 
 
     result = result.replace(/,\s*$/, ""); 
 
     
 
     $('#result').html(result);  
 
    } \t \t 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> 
 
<select name="dos" id="dos1"> 
 
    <option value="-1">--Select--</option> 
 
    <option value="1-0-1">1-0-1</option> 
 
    <option value="0-0-1">0-0-1</option> 
 
    <option value="1-1-1">1-1-1</option> 
 
    <option value="1-0-0">1-0-0</option> 
 
    <option value="0-1-0">0-1-0</option> 
 
    <option value="1-1-0">1-1-0</option> 
 
</select> 
 

 
<div id="result"></div>

Updated Fiddle DEMO

+0

@ Джей, это то, что вы хотите? –

+0

Да, это именно то, чего я очень хотел. Но у меня есть сомнения, что, если значение опции выбора происходит из базы данных. Тогда как я могу изменить эти значения. – Jay

+0

Как вы храните значения в базе данных? –

1

Попробуйте использовать атрибут значение в вашем приложении:

<pre> 
<select> 
    <option value="9am">1-0-1</option> 
    <option value="3pm">0-0-1</option> 
    <option value="9pm">1-1-1</option> 
    <option value="9am">1-0-0</option> 
    <option value="3pm">0-1-0</option> 
    <option value="9pm">1-1-0</option> 
    </select> 
</pre> 

Надеюсь, что решает вашу проблему.

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