Anzeigen von Daten Aus Einer Dropdown Liste php
Ich versuche hart mit der Anzeige von details einer ausgewählten option in einem drop-down-Liste für mein Projekt.
Ich habe ein drop-down-Liste, die ist bevölkert von einer MYSQLi Abfrage. Ich will, dass die Benutzer, um eine option auszuwählen und die Werte aus der Datenbank abgerufen und dem Benutzer angezeigt.
Dynamisch aufgefüllt drop-down-Liste für "Vorname" der Personen(Tabelle Namen), und wenn ein Benutzer wählt einen Namen aus dem drop-down-Liste möchte ich den Datensatz der person angezeigt werden.
Den code unten ist für dynamisches Auffüllen der drop-down-Liste. Der Benutzer klickt auf die Schaltfläche und geht auf der nächsten Seite, welche eine Tabelle mit den Ergebnissen. Es ist kein Fehler, aber zu keinem Ergebnis, wie erforderlich zu.
drop-down-code
<!DOCTYPE>
<html>
<head>
<title>Update Data</title>
</head>
<body>
<form name="form_update" method="post" action="update_test.php">
<?php
$con=mysqli_connect("localhost","root","","ismat_db");
//============== check connection
if(mysqli_errno($con))
{
echo "Can't Connect to mySQL:".mysqli_connect_error();
}
//This creates the drop down box
echo "<select name= 'FirstName'>";
echo '<option value="">'.'--- Please Select Person ---'.'</option>';
$query = mysqli_query($con,"SELECT FirstName FROM persons");
$query_display = mysqli_query($con,"SELECT * FROM persons");
while($row=mysqli_fetch_array($query))
{
echo "<option value='". $row['id']."'>".$row['FirstName']
.'</option>';
}
echo '</select>';
?> <input type="submit" name="submit" value="Submit"/>
</form><br/><br/>
<a href="main.html"> Go back to Main Page </a>
</body>
</html>
Anzeigen-Code
<title>Update Data</title>
</head>
<body>
<!--<table>
<tr>
<td align="center"> From Database </td>
</tr>
<tr>
<td>
<table border="1">
<tr>
<td>First Name</td>
<td>Last Name </td>
<td> Gender </td>
<td> Subject </td>
<td> Hobbies </td>
</tr>
-->
<?php
$con=mysqli_connect("localhost","root","","ismat_db");
if(mysqli_errno($con))
{
echo "Can't Connect to mySQL:".mysqli_connect_error();
}
//$name = mysqli_real_escape_string($con,$_POST['select']);
//$fetch = mysqli_query($con,"SELECT * FROM persons WHERE FirstName='".$name."'");
// $row_display=mysqli_fetch_assoc($fetch);
if(isset($_POST['select']))
{
$name = mysqli_real_escape_string($con,$_POST['select']);
$fetch = "SELECT * FROM persons WHERE FirstName = '".$name."'";
$result = mysqli_query($con,$fetch);
//display the table
echo '<table border="1">'.'<tr>'.'<td align="center">'. 'From Database'. '</td>'.'</tr>';
echo '<tr>'.'<td>'.'<table border="1">'.'<tr>'.'<td>'.'First Name'.'</td>'
.'<td>'.'Last Name'.'</td>'.'<td>'. 'Gender' .'</td>'.'<td>'
. 'Subject'. '</td>'.'<td>'. 'Hobbies' .'</td>'.'</tr>';
while($data = mysqli_fetch_row($result))
{
echo ("<tr><td>$data[0]</td><td>$data[1]</td><td>$data[2]</td><td>$data[3]</td><td>$data[4] </td></tr>");
}
echo '</table>'.'</td>'.'</tr>'.'</table>';
}
?>
<!--
</table>
</td>
</tr>
</table>
-->
<br/>
<a href="update.php"> Go back to Main Page </a>
</body>
</html>
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bist du mit dem falschen Feldnamen im view-code:
v. s.
Formulare gesendet werden mit
fieldname=value
Paare, NICHT der name des tag, das den Eingang kam.$result = mysqli_query(...) or die(mysqli_error());
.Es gibt einige Vorschläge
In Ihrer Abfrage hinzufügen, die id, die Sie haben, legen Sie als Wert für die Optionen
echo "<option value='". $row['id']."'>".$row['FirstName']
so aktualisieren Sie es wie folgt aus:
$query = mysqli_query($con,"SELECT id,FirstName FROM persons");
Prüfen Sie für die falsche
POST var 'select'
, es sollte sein, 'Vorname', die den Namen des select-Felds ein, das Sie unter:echo "<select name= 'FirstName'>
anstatt also den folgenden code:
if(isset($_POST['select']))
{
$name = mysqli_real_escape_string($con,$_POST['select']);
$fetch = "SELECT * FROM persons WHERE FirstName = '".$name."'";
$result = mysqli_query($con,$fetch);
Beachten Sie auch, dass in der where-Klausel solltest du für die id, nicht der Vorname
verwenden Sie diese korrigierte code statt :
if(isset($_POST['FirstName']))
{
$name = $_POST['FirstName'];
$fetch = "SELECT * FROM persons WHERE id = '".$name."'";
$result = mysqli_query($con,$fetch);