У меня есть PHP-форма, которая загружается в HTML при нажатии кнопки с помощью JS
<button id="edituser" type="submit" onclick="toggle_visibility('c');" style="border:0;width:100px;margin-left: 74px;">
<img src="https://web-answers.ru/wp-content/uploads/2019/03/edituser.png" alt="">
</button><br><br>
JS код:
if(document.getElementById("c").id == id)
{
e.style.display = 'block';
document.getElementById("a").style.display='none';
document.getElementById("b").style.display='none';
document.getElementById("edituser").style.backgroundImage="url('images/edit_user_hover.png')";
}
Форма Php с выпадающим списком приведена ниже:
<div class="col-lg-6" style="display:none" id="c" >
<form action="" method="post" >
<br><br>
<br>
<select name="id" id="id" class="span2" style=" width:150px;" onChange="this.form.submit();">
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "val";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$arr = array();
$sql = "SELECT id FROM tbl_user ";
$result = mysqli_query($conn, $sql);
// echo "User name=" . $row["name"]. "<br>";?>
<option value="">-select user-</option>
<?php if (mysqli_num_rows($result) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($result)) {
$arr[] = $row;
?>
<option value="<?php echo $row["id"]; ?>" <?php if($_POST["id"]== $row["id"]) {?> selected="selected" <?php } ?>>
<?php echo $row["id"];?>
</option>
<?php
}
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
header('Location: webservices.php');
}
mysqli_close($conn);
?>
</select>
<br><br>
<br>
<input type="text" id="first_name" name="first_name" style="width: 460px;height: 50px;overflow: hidden;" placeholder="First Name*">
<br>
<br><br><br>
<input type="text" id="last_name" name="last_name" style="width: 460px;height: 50px;overflow: hidden;" placeholder="Last Name*">
<br><br><br><br>
<input type="text" id="phone" name="phone" style="width: 460px;height: 50px;overflow: hidden;" placeholder="Phone*">
<br><br><br><br>
<input type="text" id="company_id" name="company_id" style="width: 460px;height: 50px;overflow: hidden;" placeholder="Company ID*">
<br><br><br><br>
<input type="text" id="register_on" name="register_on" style="width: 460px;height: 50px;overflow: hidden;" placeholder="Register On*">
<br><br><br><br>
<button name="edituser" id="edituser" type="submit" style="border:0;width:100px;margin-left: 45px;" >
<img src="https://web-answers.ru/wp-content/uploads/2019/03/save.png" alt="">
</button>
<button type="submit" style="border:0;width:100px;margin-left: 75px;">
<img src="https://web-answers.ru/wp-content/uploads/2019/03/cancel.png" alt="">
</button>
</form>
</div>
Здесь функциональность, которая мне нужна, при нажатии кнопки в выпадающем списке должна загружать значения из базы данных, затем при выборе значения из выпадающего списка форма должна загружать значения из базы данных.
Я довольно новичок, поэтому, пожалуйста, помогите? Комбо-бокс не загружает значения из базы данных по нажатию кнопки … и как сделать, чтобы при загрузке из базы данных при выборе значения комбобокса?
Прежде всего, PHP-код для подключения к БД должен быть записан в другом файле и включить его здесь. Это лучшая практика. Затем используйте следующий код для получения данных поля со списком. Перенесите результат вашего запроса в массив как таковой.
$results = array();
while ($row = mysqli_fetch_array($teamQuery)) {
$results[] = $row;
}
Затем выполните итерацию массива в том месте, где вы хотите отобразить данные.
<select name="id" id="id" class="span2" style=" width:150px;" onChange="this.form.submit();">
<option value="">-select user-</option>
<?php
foreach($results as $key => $row){
echo "<option value='".$row['option_value']."'>".$row['option_name']."</option>";
}
?>
</select>
Вы должны повторить опцию, чтобы нарисовать его в файле HTML. И для справки: метод, который вы используете для отображения скрытых данных, не рекомендуется. Страница будет загружаться быстрее, если вы прекратите получать данные при начальной загрузке страницы. Просто привяжите функцию ajax к кнопке и затем, по нажатию кнопки, получите данные поля со списком и покажите их. Затем обработайте любые другие данные по пути.
Других решений пока нет …