L'affichage de Données à Partir d'Une Liste Déroulante de php
Je suis en train dur avec l'affichage des détails d'une option sélectionnée dans une liste déroulante pour mon projet.
J'ai une liste déroulante qui est rempli à partir d'un MYSQLi requête. Je veux que l'utilisateur de sélectionner une option et les valeurs associées tiré de la base de données et affichées à l'utilisateur.
Le rempli dynamiquement la liste déroulante est pour "le Prénom" de personnes(Nom de la Table) et, lorsqu'un utilisateur sélectionne un nom dans la liste déroulante, je veux que le dossier de cette personne d'être à l'affiche.
Le code ci-dessous est pour le remplissage dynamique de la liste déroulante. L'utilisateur clique sur le bouton et va sur la page suivante qui devrait créer un tableau avec les résultats. Il n'y a pas d'Erreur, mais pas de résultat, comme l'exige trop.
déroulant 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>
Afficher Le 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>
Vous devez vous connecter pour publier un commentaire.
Vous utilisez la mauvaise fieldname dans votre afficher le code:
c. s.
De la soumission de formulaires avec
fieldname=value
paires, PAS le nom de la balise que l'entrée est venu.$result = mysqli_query(...) or die(mysqli_error());
.Il ya quelques suggestions
Dans votre requête, ajouter l'id que vous avez définie comme la valeur pour les options
echo "<option value='". $row['id']."'>".$row['FirstName']
afin de le mettre à jour comme suit:
$query = mysqli_query($con,"SELECT id,FirstName FROM persons");
Vous êtes à la vérification de la mauvaise
POST var 'select'
, il devrait être "Prenom" qui est le nom de l'sélectionnez le champ que vous avez utilisé ci-dessous:echo "<select name= 'FirstName'>
ainsi, au lieu d'utiliser le code suivant:
if(isset($_POST['select']))
{
$name = mysqli_real_escape_string($con,$_POST['select']);
$fetch = "SELECT * FROM persons WHERE FirstName = '".$name."'";
$result = mysqli_query($con,$fetch);
Également noter que dans la clause where, vous devriez vérifier l'id n'est pas le prénom
utiliser ce code corrigé à la place :
if(isset($_POST['FirstName']))
{
$name = $_POST['FirstName'];
$fetch = "SELECT * FROM persons WHERE id = '".$name."'";
$result = mysqli_query($con,$fetch);