Итак, я смог добавить значения одного поля базы данных (Lname) в массив. Затем я хочу использовать эти значения массива для заполнения моей формы, а затем вытащить запись базы данных из указанного значения в таблицу. Есть ли более простой способ сделать это? Я не знаком с Jquery.
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "my_database";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
//place Last Name in array
$sql="SELECT Lname FROM Customers";
$result=mysqli_query($conn,$sql);
$lnames=mysqli_fetch_all($result,MYSQLI_ASSOC);
mysqli_free_result($result);
foreach($lnames as $x) {
$a[] = $x['Lname'];
}
$q = intval($_GET['q']);
$sql="SELECT * FROM Customers WHERE Lname = '".$q."'";
$result = mysqli_query($conn,$sql);
echo "<table>
<tr>
<th>Last Name</th>
<th>Email</th>
<th>City</th>
<th>Balance</th>
</tr>";
while($row = mysqli_fetch_array($result)) {
echo "<tr>";
echo "<td>" . $row['Lname'] . "</td>";
echo "<td>" . $row['Email'] . "</td>";
echo "<td>" . $row['City'] . "</td>";
echo "<td>" . $row['Balance'] . "</td>";
echo "</tr>";
}
echo "</table>";
?>
Вот предложенный скрипт, который я вытащил с другого форума Overflow.
<script>
function showUser(str) {
if (str.length == 0) {
document.getElementById("txtHint").innerHTML = "";
return;
} else {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("txtHint").innerHTML = this.responseText;
}
};
xmlhttp.open("GET", "gethint.php?q=" + str, true);
xmlhttp.send();
}
}
</script>
А также HTML-код.
<div>
<form>
<select onchange="showUser(this.value)">
<option value="">Select a person:</option>
<option value="1">Jordan</option>
<option value="2">Kidd</option>
<option value="3">Hairston</option>
<option value="4">Irving</option>
</select>
</form> <br>
<div id="txtHint">
<b>Person info will be listed here.</b>
</div>
</div>