Onchange показывает неверное значение в полях ввода - PullRequest
0 голосов
/ 05 мая 2020

У меня проблема с настройкой функции onchange для получения правильного значения. Я хочу показать значение в 8 полях ввода, если выберу этот вариант. Ниже приведено мое кодирование выбранной функции:

<select onchange="getComboA(this)" class="form-control blank" id="parentid" name="parentid" title="parentid">
                  <option>Please Select</option>
                  <option value="New Category_value" 
                  data-function-code="' . $rs_incharge['function_code'] . '"
                  data-function-name="' . $rs_incharge['function_name'] . '" 
                  data-activity-code="' . $rs_incharge['activity_code'] . '" 
                  data-activity-name="' . $rs_incharge['activity_name'] . '" 
                  data-sub-activity-code="' . $rs_incharge['sub_activity_code'] . '" 
                  data-sub-activity-name="' . $rs_incharge['sub_activity_name'] . '" 
                  data-transaction-code="' . $rs_incharge['transaction_code'] . '"  
                  data-transaction-name="' . $rs_incharge['transaction_name'] . '"> New Category
                </option>
                  <?php
                    $sql_incharge = 'select * from filing_code_management where status=1 order by id';
                    $arr_incharge = db_conn_select($sql_incharge);
                    foreach ($arr_incharge as $rs_incharge) {
                    $folder_location = $rs_incharge['folder_location'];
            $function_code_select = $rs_incharge['function_code'];
            $function_name_select = $rs_incharge['function_name'];
            $activity_code_select = $rs_incharge['activity_code'];
            $activity_name_select = $rs_incharge['activity_name'];
            $sub_activity_code_select = $rs_incharge['sub_activity_code'];
            $sub_activity_name_select = $rs_incharge['sub_activity_name'];
            $transaction_code_select = $rs_incharge['transaction_code'];
            $transaction_name_select = $rs_incharge['transaction_name'];
                    echo '<option value="' . $rs_incharge['function_code'] . '">' . $rs_incharge['name'] . '</option>';

                    }
                    ?>
                </select>

Jquery функция:

<script>
    function getComboA() {
    var sel = document.getElementById('parentid');
    var selected = sel.options[sel.selectedIndex];
    var data = selected.getAttribute('data-function-code');
    document.getElementById("function_code").value =data;
    var data = selected.getAttribute('data-function-name');
    document.getElementById("function_name").value =data;
    var data = selected.getAttribute('data-activity-code');
    document.getElementById("activity_code").value =data;
    var data = selected.getAttribute('data-activity-name');
    document.getElementById("activity_name").value =data;
    var data = selected.getAttribute('data-sub-activity-code');
    document.getElementById("sub_activity_code").value =data;
    var data = selected.getAttribute('data-sub-activity-name');
    document.getElementById("sub_activity_name").value =data;
    var data = selected.getAttribute('data-transaction-code');
    document.getElementById("transaction_code").value =data;
    var data = selected.getAttribute('data-transaction-name');
    document.getElementById("transaction_name").value =data;
  }

</script>

Ниже приведен вывод ошибки, он не может показать правильное значение, просто покажите мне имя переменной, когда Выбрана категория. И если я выберу другой вариант, он также не сможет показать мне значение:

Выбрать категорию

Output 1

Выберите другое имя без значения для отображения

Output 2

Весь код: https://pastebin.com/9vyvL0SG

Надеюсь, кто-нибудь сможет подсказать мне, как показать правильное значение в 8 полях ввода.

1 Ответ

1 голос
/ 05 мая 2020

Я не вижу, где начинается ваш код PHP, попробуйте следующее:

<select onchange="getComboA(this)" class="form-control blank" id="parentid" name="parentid" title="parentid">
    <option>Please Select</option>

    <?php
        $sql_incharge = 'select * from filing_code_management where status=1 order by id';
        $arr_incharge = db_conn_select($sql_incharge);
        foreach ($arr_incharge as $rs_incharge) {
            $folder_location = $rs_incharge['folder_location'];
            $function_code_select = $rs_incharge['function_code'];
            echo '<option value="' . $rs_incharge['function_code'] . '">' . $rs_incharge['name'] . '</option>';
        }
    ?>

    <option value="New Category_value" 
        data-function-code="<?php echo $rs_incharge['function_code']; ?>"
        data-function-name="<?php echo $rs_incharge['function_name']; ?>" 
        data-activity-code="<?php echo $rs_incharge['activity_code']; ?>" 
        data-activity-name="<?php echo $rs_incharge['activity_name']; ?>" 
        data-sub-activity-code="<?php echo $rs_incharge['sub_activity_code']; ?>" 
        data-sub-activity-name="<?php echo $rs_incharge['sub_activity_name']; ?>" 
        data-transaction-code="<?php echo $rs_incharge['transaction_code']; ?>"  
        data-transaction-name="<?php echo $rs_incharge['transaction_name']; ?>"> New Category
    </option>
</select>

Я предполагаю, что $rs_incharge['function_code'] уже определен до <select onchange...


Пример ниже будет работа, потому что мы определяем $variable ДО , мы используем echo:

<?php
    $variable = 'This is awesome!';
    echo $variable;
?>

Пример ниже даст ОШИБКУ, потому что мы определяем $variable ПОСЛЕ echo :

<?php
    echo $variable;
    $variable = 'This is awesome!';
?>
...