2016-12-21 2 views
0

Как мне получить значения сразу из выбранных опций через функцию JavaScript?Получите два значения из опции выбора сразу

Вот мой код:

<select name="ledger" id="ledger" onchange="setDebit(this.value)" required> 
    <option value="" >Select</option> 
    <?php 
     $ledgerResult = $this->db->query('SELECT * FROM ledger WHERE account_type = "Creditors" ORDER BY name'); 
     $ledgerData = $ledgerResult->result(); 

     for ($c = 0; $c < count($ledgerData); ++$c) { 
        $ledger_id = $ledgerData[$c]->id; 
        $ledger_name = $ledgerData[$c]->name; 
        $ledger_credit = $ledgerData[$c]->credit; ?> 

     <option value="<?php echo $ledger_id;?>"><?php echo $ledger_name;?></option> 
     } 
</select> 

<script> 
    function setDebit(ele){ 
     document.getElementById("set_debit").value = ele; 
    } 
</script> 

Я получаю $ledger_id и отправить это значение через setDebit() в сценарий. Но мне нужно отправить $ledger_credit. Я могу сделать это, установив его как значение параметра вместо $ledger_id;, но мне также нужно значение select как $ledger_id.

Как установить $ ledger_id как значение параметра, но отправить $ ledger_credit через setDebit(this.value)?

+0

что вы имели в виду "получить два значения"? Вы хотите выбрать * mutiple *? – donald123

+0

CONCAT и $ ledger_id. ":". $ Ledger_credit в значении параметра, затем разделите его на javascript, например. var.split (":") – JustBaron

+0

Нет, мне нужно установить значение параметра как $ ledger_id, которое я сделал. Но в то же время мне нужно отправить $ ledger_credit через функцию setDebit(). – Saud

ответ

0

Если вы не используете JQuery.

<option value="<?php echo $ledger_id."||".$ledger_credit; ?><?php echo $ledger_name;?> </option> 
<script> 
    function setDebit(){ 
    var details = document.getElementById("ledger").value; 
    var allData = details.split("||"); 
    var ledger_id = allData[0]; 
    var ledger_credit = allData[1]; 
    console.log(ledger_id); 
    console.log(ledger_credit); 
} 
</script> 
+0

не работает. переменная детали не получает ожидаемое значение из книги. – Saud

+0

Вы используете jquery? –

+0

@Saud i отредактировал вопрос Вы можете проверить сейчас –

0

Вы должны установить мультипликатор атрибута в HTML-части: http://www.w3schools.com/tags/att_select_multiple.asp

После этого вы можете взглянуть на этот вопрос для дальнейшей информации: How to get all selected values of a multiple select box using JavaScript?

+0

Нет, вы не поняли. Я выберу вариант, т. Е. $ Bookger_name. И тогда значение параметра будет установлено как $ ledger_id, а значение функции setDebit (this.value) будет установлено как $ ledger_credit. – Saud

+0

О, я понимаю, может быть, вам стоит подумать о том, чтобы просто отправить идентификатор и преобразовать его обратно в кредит на стороне сервера (используя ассоциативный массив или запрос базы данных в PHP-коде), что на стороне клиента можно легко подделать – ShadowBeast

1
<option value="<?php echo $ledger_id.":".$ledger_credit;?>"><?php echo $ledger_name;?></option> 

    function setDebit(ele){ 
      var Value = document.getElementById("ledger").val(); 
      var Parts = Value.split(":"); 
      var LedgerID = Parts[0]; 
      var LedgerCredit = Parts[1]; 
    } 
0

можно добавить atribute data-credit по вашим опциям

<option value="<?php echo $ledger_id;?>" data-credit="<?php echo $ledger_credit;?>"><?php echo $ledger_name;?></option> 

И в setDebit функция:

var ledger_credit = $('option:selected', "#ledger").data('credit'); 

Вы должны использовать JQuery в этом растворе

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