У меня есть выпадающий список из php mysql select (загрузить из таблицы с именем «userstable», в которой есть два поля «name» и «email»). Я хочу выбрать «имя» из выпадающего списка php mysql и с помощью Ajax (json) получить «электронное письмо» для пользователя, выбранного из таблицы mysql, и отобразить его в поле ввода. Раскрывающийся список работает, и я могу выбрать имя, но информация электронной почты не заполняется в поле ввода с именем «email».
Таблица базы данных mysql:
usertable содержит поля [ имя], [электронная почта].
Мой индекс. php код:
<?php
require_once("conection.php");
?>
<!DOCTYPE html>
<html>
<head>
<title>Contact Form Validation using jqBootstrapValidation with Ajax PHP</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqBootstrapValidation/1.3.6/jqBootstrapValidation.js"></script>
<!-- Ajax function for getting email -->
<script>
$(document).ready(function(){
$('#name').on('change',function(){
var name = $(this).val();
$.ajax({
url : "getemail.php",
dataType: 'json',
type: 'POST',
async : false,
data : { name:name,email : email},
success : function(data) {
userData = json.parse(data);
$('#email').val(userData.email);
}
});
});
});
</script>
</head>
<body>
<div class="container">
<br />
<h3 align="center">Showing User Info</h3>
<br />
<form id="simple_form" novalidate="novalidate">
<div class="row">
<!--Dropdown list for selecting name -->
<div class="col-md-6">
<div class="control-group">
<h3>User</h3>
<select required id="name" name="name" class="form-control" onchange="showname(this.value)">
<option value="">Select User</option>
<?php include("userselect.php") ?>
</select>
</div>
</div>
<!-- input field for showing user email -->
<div class="col-md-6">
<div class="control-group">
<h3>Email</h3>
<div class="form-group mb-0 pb-2">
<input type="text" name="email" id="email" class="form-control form-control-lg" />
<p class="text-danger help-block"></p>
</div>
</div>
</div>
</div>
</form>
</div>
</body>
</html>
Это пользовательский выбор php. php для выбора имени пользователя для отображения электронной почты:
<?php
$selectdata = "SELECT * FROM userstable ORDER BY name";
$DoQuery = $connect->query($selectdata);
while($register = $DoQuery->fetch_assoc()){
echo "<option value='".utf8_encode($register["name"])."'";
if ($_POST["name"]==$register["name"])
{
echo "selected";
}
echo ">".utf8_encode($register["name"])."</option>";
}
// $connect->close();
?>
Этот getmail. php код для получения электронной почты для отображения:
<?php
$connect = mysqli_connect("localhost", "root", "mysq1passw0rd", "users");
$query = "SELECT * FROM userstable WHERE name = '".$_POST["name"]."'";
$result = mysqli_query($connect, $query);
while($row = mysqli_fetch_array($result))
{
$data["email"] = $row["email"];
}
echo json_encode($data);
?>
Пожалуйста, есть идеи?