Выводить из строя inputs, выбрав выборы SELECT

У меня есть следующий SELECT, который соединен базой данных. Ты подпираешь, выбрав информацию о списке SELECT, мне показывает в соответствующих INPUT данные корреспондент полей, присоединенных к выбору, сделанному в SELECT.

Что желание состоит, в том, что выбрав любую информацию о списке SELECT, я вывел некие INPUT из строя. До настоящего времени я смог выводить из строя INPUTS, которые я желаю только, когда clickeo в выборе SELECT и я не добавляю код для того, чтобы они показали мне данные в INPUT. Но когда я включаю код для того, чтобы, если появились в INPUT данные, соответствующие выбору, который делается в SELECT, эти не выводятся из строя.

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

Код, который не выводит INPUT из строя, когда я помещаю код для того, чтобы он показал данные в INPUT как выбор в SELECT

<!DOCTYPE html>
<html lang="es">
<head>
	<meta charset="UTF-8">
	<title>Document</title>

</head>


<body>
<form>

	<div align="center">   

  <select id="colaboradores" onchange="deshabilitar(this)">

              <script type="text/javascript">
              document.getElementById('colaboradores').onchange = function() {
               
                var mOption = this.options[this.selectedIndex];
               
                var mData = mOption.dataset;
                
                var elCodigo = document.getElementById('codigo');
               
                var elDni = document.getElementById('dni');
                
                 elCodigo.value = this.value;
               
                elDni.value = mData.dni;
              };


               function deshabilitar(obj) {
                      var hab;
                      
                      frm=obj.form;
                      num=obj.selectedIndex;

                       if (num) hab=true;
                       frm.codigo.disabled=hab;
                      frm.dni.disabled=hab;
                      
                    }

                                    
              </script>



        <option value="0" data-dni="" selected disabled>--Seleccione colaborador--</option>
          <?php          

                  $query = $conn -> query ("SELECT * FROM colaborador");
                  while ($row = $query->fetch_assoc()) {
                      $data="data-dni=\"$row[dni]\""; 
                      $value="value=\"$row[codigo]\"";                      
                      echo "<option $value $data>$row[nombre]</option>";          
                  }
          ?>
    </select>
<hr />
  
    <input id="codigo" type="text" placeholder="codigo" />

    <input id="dni" type="text" placeholder="DNI" />
      
</div>


</form>


</body>
</html>

Код, что если dehabilita INPUT, не помещая кода для того, чтобы он показал данные в INPUT как выбор в SELECT

<!DOCTYPE html>
<html lang="es">
<head>
	<meta charset="UTF-8">
	<title>Document</title>

</head>


<body>
<form>

	<div align="center">   

  <select id="colaboradores" onchange="deshabilitar(this)">

              <script type="text/javascript">
              
               function deshabilitar(obj) {
                      var hab;
                      
                      frm=obj.form;
                      num=obj.selectedIndex;

                       if (num) hab=true;
                       frm.codigo.disabled=hab;
                      frm.dni.disabled=hab;
                      
                    }

                                    
              </script>



        <option value="0" data-dni="" selected disabled>--Seleccione colaborador--</option>
          <?php          

                  $query = $conn -> query ("SELECT * FROM colaborador");
                  while ($row = $query->fetch_assoc()) {
                      $data="data-dni=\"$row[dni]\""; 
                      $value="value=\"$row[codigo]\"";                      
                      echo "<option $value $data>$row[nombre]</option>";          
                  }
          ?>
    </select>
<hr />
  
    <input id="codigo" type="text" placeholder="codigo" />

    <input id="dni" type="text" placeholder="DNI" />
      
</div>


</form>


</body>
</html>
0
задан 09.11.2019, 00:11
1 ответ

Проблема состоит в том, что, сначала ты соединял onChange, который было нужно выводить из строя, и despuГ©s volvГ-схвати это, чтобы ее соединяться с другой funciГіn, он препятствовал onchage она оставалась соединенной только с Гєltima funciГіn, что я делаю, состоит в том, чтобы funciГіn выводить из строя, приказало называть другую funciГіn, который tambiГ©n он хочет выполнить в onchange, asГ - работают две

function cargarDatos(obj) {
			   
	var mOption = obj.options[obj.selectedIndex];
   
	var mData = mOption.dataset;
	
	var elCodigo = document.getElementById('codigo');
   
	var elDni = document.getElementById('dni');
	
	 elCodigo.value = obj.value;
   
	elDni.value = mData.dni;
}

function deshabilitar(obj) {
	  var hab;
	  
	  frm=obj.form;
	  num=obj.selectedIndex;

	 if (num) hab=true;
	  frm.codigo.disabled=hab;
	  frm.dni.disabled=hab;
    
    cargarDatos(obj);
	  
}
<!DOCTYPE html>
<html lang="es">
<head>
	<meta charset="UTF-8">
	<title>Document</title>

</head>


<body>
<form>

	<div align="center">   

  <select id="colaboradores" onchange="deshabilitar(this)">

              



        <option value="0" data-dni="" selected disabled>--Seleccione colaborador--</option>
          <?php          

                  $query = $conn -> query ("SELECT * FROM colaborador");
                  while ($row = $query->fetch_assoc()) {
                      $data="data-dni=\"$row[dni]\""; 
                      $value="value=\"$row[codigo]\"";                      
                      echo "<option $value $data>$row[nombre]</option>";          
                  }
          ?>
    </select>
<hr />
  
    <input id="codigo" type="text" placeholder="codigo" />

    <input id="dni" type="text" placeholder="DNI" />
      
</div>


</form>


</body>
</html>
0
ответ дан 01.12.2019, 12:13
  • 1
    Большое спасибо, уже probé и если я sirvió. Добавочный в это, выведя inputs из строя с данными внутри é l, возможно вновь регистрировать с выведенными из строя inputs? – EDG_DGK 08.11.2019, 20:56
  • 2
    И lí nea có я говорю document.getElementById (' colaboradores') .onchange = function () ? Уже не deberí чтобы это помещать? Дело в том, что это serví чтобы для показывать данные о полях моей таблицы в моей базе данных в INPUTS segú n выбор, который был сделан в SELECT. – EDG_DGK 09.11.2019, 02:02
  • 3
    Не уже не. Дело в том, что, если ты помещаешь эту линию этот sobreescriviendo onChange select, если ты обращаешь внимание в функции выводить из строя, он приказывает называться " cargarDatos" эта функция сделает то, что он делал document.getElementById (' colaboradores') .onchange, так что уже ты не нуждаешься в ней – Manuel Alberto Gomez Lozano 09.11.2019, 02:33
  • 4
    Функция cargarDatos (obj) этот remplazando функция линии document.getElementById (' colaboradores') .onchange, удали вся эту функцию и remplazala из-за функции cargarDatos – Manuel Alberto Gomez Lozano 09.11.2019, 02:33
  • 5
    протестируй код и ты комментируешь мне, я думаю, что, если оно функционирует, потому что он загружает данные – Manuel Alberto Gomez Lozano 09.11.2019, 02:34
  • 6
    frm.codigo.readOnly=hab; frm.dni.readOnly=hab; – Manuel Alberto Gomez Lozano 20.11.2019, 01:23