AJAX动态combobx无法正常工作,如何解决我遇到的问题?

时间:2019-11-11 22:58:10

标签: ajax

我刚接触AJAX,我尝试做的网页是使用动态组合框,应该从数据库中选择一名医生,然后在下一个组合框中显示时间表。

但是问题是当我选择医生时,那里没有时间表,我不知道我的网页出了什么问题,我希望有人可以帮助我。

代码:

    function getHorarios(){
   $mysqli = getConn();
   $id = $_POST['rut'];
   $query = "SELECT rutemple FROM empleado WHERE rutemple = (SELECT hora FROM horario WHERE rut = '$id')";
  $result = $mysqli->query($query);
  $horarios = '<option value="0">Elige una opción</option>';
  while($row = $result->fetch_array(MYSQLI_ASSOC)){
    $horarios .= "<option value='$row[id]'>$row[hora]</option>";
  }
  return $horarios;
}

有水平表:

CREATE TABLE `horario` (
  `id` int(11) NOT NULL,
  `hora` varchar(30) NOT NULL,
  `rut` varchar(12) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

还有Empleado表:

CREATE TABLE `empleado` (
  `rutemple` varchar(12) NOT NULL,
  `nombre` varchar(25) DEFAULT NULL,
  `apellido` varchar(25) DEFAULT NULL,
  `fnac` date DEFAULT NULL,
  `direccion` varchar(25) DEFAULT NULL,
  `ciudad` varchar(25) DEFAULT NULL,
  `telefono` decimal(9,0) DEFAULT NULL,
  `cargo` int(11) DEFAULT NULL,
  `especialidad` int(10) DEFAULT NULL,
  `clave` varchar(25) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

这是我确实遇到的问题的图像:

Problem

enter image description here

当我必须选择医生时,它应该加载他/她拥有的可用时间表。

AJAX代码:

$(document).ready(function(){
  $.ajax({
    type: 'POST',
    url: 'php/cargar_doct.php'
  })
  .done(function(doctors){
    $('#doctores').html(doctors)
  })
  .fail(function(){
    alert('Hubo un errror al cargar las doctores')
  })

  $('#doctores').on('change', function(){
    var id = $('#doctores').val()
    $.ajax({
      type: 'POST',
      url: 'php/cargar_horas.php',
      data: {'id': id}
    })
    .done(function(doctors){
      $('#horitas').html(doctors)
    })
    .fail(function(){
      alert('Hubo un errror al cargar las horas')
    })
  })
})

Horario的表格内容:

enter image description here

Emppleado的表内容:

enter image description here

function getDocts(){
  $mysqli = getConn();
  $query = "SELECT nombre, apellido FROM empleado WHERE especialidad = '3' ORDER BY rutemple";
  $result = $mysqli->query($query);
  $listas = '<option value="0">Elige una opción</option>';
  while($row = $result->fetch_array(MYSQLI_ASSOC)){
    $listas .= "<option value='$row[rutemple]'>$row[nombre] $row[apellido]</option>";
  }
  return $listas;
}

0 个答案:

没有答案