Не пытайтесь проверять отправленное значение и вставлять его в запрос на том же шаге.
isset()
- разумная проверка перед выполнением запроса, чтобы избежать Notice
, ноон доставит только true
или false
.Это запутывает ваш предполагаемый запрос. Посмотрите, что произойдет.
Отправка html не так чиста, как обработка объекта json в цикле для генерации нового html.
Вот мой непроверенный предлагаемый код:
PHP:
// connect with $kon
$result[] = ["", "--Choose doctor--"];
if (isset($_POST["id_poly"])) {
if ($dok = mysqli_query($kon, "SELECT id_doctor, doctor FROM doctor WHERE id_poly = " . (int)$_POST["id_poly"]))
while ($row = mysqli_fetch_assoc($dok)) {
$result[] = [$row["id_doctor"], $row["doctor"]];
}
}
}
echo json_encode($result);
Затем вернитесь в свою success
функцию:
var doctor = $("#doctor");
doctor.empty();
for (var i = 0; i < data.length; ++i) {
doctor.append('<option value="' + data[i][0] + '"' + (i ? "" : " disabled") + '>' + data[i][1] + '</option>');
}
(i ? "" : " disabled")
<- это проверка с нулем / ненулем, так что только первый вариант <code>disabled.