Как преобразовать индекс массива PHP в переменную javascript

#javascript #php #html

#javascript #php #HTML

Вопрос:

Я получаю набор пользовательских ролей из базы данных с использованием PHP, и они помещаются в <select> теги <option> следующим образом:

 <div class="col-md-3">
    <select name="role" id="user_role" class="form-control" onkeyup="clearMsg('roleerr')" onchange="getRole()"/>
        <option value="">Select a Role</option>
        <?php while($rowrole = $resultrole->fetch(PDO::FETCH_BOTH)) { ?>
        <option value="<?php echo $rowrole ['role_id']; ?>">
        <?php echo $rowrole ['role_name']; ?>
        </option>
        <?php } ?>
    </select>
    <span id="roleerr" class="error">*</span>
</div>
  

И я хочу получить выбранное значение выпадающего списка «onchange», и для этого getRole() написана функция javascript. Как это сделать?

Ответ №1:

При изменении элемента значение выпадающего списка будет установлено на значение, приписываемое выбранной опции. Итак, вы просто определили бы свою функцию javascript и получили бы значение из выпадающего списка:

 function getRole(){
   var finalVal = document.getElementById("user_role").value;
   // And then here you can do whatever you want with the information
}
  

Комментарии:

1. Это не работает…. Я думаю, что значение не может быть доступно как var finalVal = document.getElementById(«user_role»).value; потому что это индекс массива php <значение параметра =»<?php echo $rowrole [‘role_id’]; ?>»> Пожалуйста, помогите мне

Ответ №2:

Вы можете присвоить значение параметру в onchange()

это должно работать ниже

 function getRole(value) {
  if(value != "")
     alert(value)
 }  
 <div class="col-md-3">
    <select name="role" id="user_role" class="form-control" onchange="getRole(this.value)"/>
        <option value="">Select a Role</option>
        <option value="23">select 23</option>
        <option value="24">select 24</option>
        <option value="25">select 25</option>
    </select>
    <span id="roleerr" class="error">*</span>
</div>  

Ответ №3:

Вы могли бы попробовать event of onchange .

 onchange="getRole(event)"
  

Javascript.

 function getRole(event) {
    var selectElement = event.target;
    var value = selectElement.value;
    alert(value);
}
  

Я протестировал его с помощью жестких данных.

 function getRole(event) {
    var selectElement = event.target;
    var value = selectElement.value;
    alert(value);
}  
 <div class="col-md-3">
    <select name="role" id="user_role" class="form-control" onchange="getRole(event)"/>
        <option value="">Select a Role</option>
        <option value="1">admin</option>
        <option value="2">user</option>
        <option value="3">support</option>
    </select>
    <span id="roleerr" class="error">*</span>
</div>