У меня есть таблица mysql с именами клиентов, которую я использую в одной из строк, чтобы заполнить опции выбора.
Я пытаюсь выполнить автоматическое заполнение 2 входных данных информацией о клиенте.когда выбран один из вариантов.
Для этого я использую JavaScript, связанный с php-страницей, которая делает запрос к БД и заполняет формы ввода, но у меня должна быть какая-то ошибка, которую яне могу понять.
Я немного новичок в PHP, поэтому мне сложно понять, что не так с моим кодом.
Это форма
<form action="insert/insertReport.php" id="newReport" method="get">
<div id="txtHint" class="form-group"> </div>
<div class="form-group">
<label for="namefat">Cliente</label>
<br>
<select class="selectpicker" data-live-search="true" class="form-control" name="client" id="client" onchange="showUser(this.value)">
<?php
while ($row = mysqli_fetch_array($query))
{ echo '
<option>'.$row['namefat'].'</option>';
}?>
</select>
</div>
</form>
Эта форма в настоящее время находится на странице newreports.php, и это запрос, который я использую для заполнения опций.
<?php
$db_host = 'localhost';
$db_user = 'user';
$db_pass = 'pass';
$db_name = 'name';
$conn = mysqli_connect($db_host, $db_user, $db_pass, $db_name);
if (!$conn) {
die ('Error: ' . mysqli_connect_error());
}
$sql = 'SELECT *
FROM clients';
$query = mysqli_query($conn, $sql);
if (!$query) {
die ('SQL Error: ' . mysqli_error($conn));
}
?>
Итак, как я уже говорил, я используюJavaScript, чтобы сделать запрос в БД об изменении.Это JS.
function showUser(str) {
if (str == "") {
document.getElementById("txtHint").innerHTML = "";
return;
} else {
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else {
// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("txtHint").innerHTML = this.responseText;
}
};
xmlhttp.open("GET","getclient.php?namefat="+str,true);
xmlhttp.send();
}
}
А это страница php, которая обрабатывает запрос.
<?php
$q = intval($_GET['namefat']);
$db_host = 'localhost';
$db_user = 'user';
$db_pass = 'pass';
$db_name = 'name';
$con = mysqli_connect($db_host, $db_user, $db_pass, $db_name);
if (!$conn) {
die ('Error: ' . mysqli_connect_error());
}
mysqli_select_db($con,"ajax_demo");
$sql="SELECT * FROM clients WHERE namefat = '".$q."'";
$result = mysqli_query($con,$sql);
while($row = mysqli_fetch_array($result)) {
echo "<input type="text" name="region" class="form-control" id="region" value=".$row['region']">";
echo "<input type="text" name="client_type" class="form-control" id="client_type" value=".$row['client_type']">";
}
mysqli_close($con);
?>
По какой-то причине входные данные не заполняются автоматически.Я оставляю отпечаток структуры таблицы базы данных.
СТРУКТУРА ТАБЛИЦЫ DB
Кто-нибудь может понять, что я делаю неправильно?
Заранее спасибо.