我已经设法将数据从SQL数据库拉入下拉选择菜单并添加了一个提交按钮。但是,当用户单击提交时,我正在努力从其他(甚至相同(表中的数据库(例如年龄,ID(填充更多数据。
我希望用户能够从下拉菜单中选择客户名称并提交。 单击"提交"按钮时,应从数据库中填充并显示链接到特定客户名称(例如Rob(的其他(例如年龄,ID(详细信息。 请帮忙。我是 php 的新手,花了几个小时在这个愚蠢的事情上。我只被允许使用php,sql和html。
非常感谢。
下拉菜单.php -原始版本(不起作用(
<?php
include "db.php"; // Database connection
$sql="SELECT customerName FROM customers";
echo "<select name=customers value=''>Customer Name</option>";
foreach ($conn->query($sql) as $row){
echo "<option value=$row[customerName]>$row[customerName]</option>";
}
echo "</select>";
?>
<form id= method="post" action = "iNeedHelpWithThisFile.php">
<input type="submit" value="SUBMIT"/>
</form>
</body>
下拉菜单.php - 更新版本
<?php
?>
<form id= method="post" action = "iNeedHelpWithThisFile.php">
<select name="customerName">Customer Name</option>
<?php
include "db.php";
$sql="SELECT `customerName` FROM `customers`";
foreach ($conn->query($sql) as $row){
echo "<option value="".$row['customerName']."">".$row['customerName']."</option>";
}
?>
</select>
<input type="submit" value="SUBMIT"/>
</form>
数据库.php
<?php
// to connect database
define('DB_NAME', 'clients');
define('DB_USER', 'root');
define('DB_PASSWORD', '');
define('DB_HOST', 'localhost');
$conn = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME) or
die ("Cannot connect");
echo "Connected to Clients";
?>
iNeedHelpWithThisFile.php
echo 语句 - age、name 、id 未被执行
<?php
echo "<pre>";
print_r($_REQUEST);
echo "</pre>";
include('db.php');
echo "<br />";
$customerName = $_POST['submit'];
if(array_key_exists('customerName', $_REQUEST ))
{
// not sure if there's an issue with intval..?
$customerName = intval($_REQUEST['customerName']);
echo("Customer: $customerName <br />");
if ($customerName)
{
$sql = "SELECT * FROM customers where customerName= ?"; //
// $conn -defined in db.php
if($stmt = mysqli_prepare($conn, $sql))
{
mysqli_stmt_bind_param($stmt, "i", $customerName);
mysqli_stmt_execute($stmt);
$queryresult = mysqli_stmt_get_result($stmt);
}
else {
echo "Could not fetch results!";
}
if ($queryresult)
{
if ($currentrow = mysqli_fetch_assoc($queryresult)) {
$name = $currentrow['customerName'];
$ID = $currentrow['customerID'];
$age = $currentrow['age'];
// these statements are not being executed
echo "Customer Name: $name <br />";
echo "Customer ID: $ID <br />";
echo "Age: $age <br />";
}
}
else {
echo "<p>Customer not in the database</p>";
}
}
}
?>
总而言之:
<form id= method="post" action = "iNeedHelpWithThisFile.php">
<select name="customers">Customer Name</option>
<?php
include "db.php";
$sql="SELECT `customerName` FROM `customers`";
foreach ($conn->query($sql) as $row){
echo "<option value="".$row['customerName']."">".$row['customerName']."</option>";
}
?>
</select>
<input type="submit" value="SUBMIT"/>
</form>
或者如果你喜欢简短的PHP标签:
<php
include "db.php";
$sql="SELECT `customerName` FROM `customers`";
?>
<form id="main" method="post" action = "iNeedHelpWithThisFile.php">
<select name="customers">Customer Name</option>
<?php foreach ($conn->query($sql) as $row){ ?>
<option value="<?=$row['customerName'];?>"><?=$row['customerName'];?></option>
<?php } ?>
</select>
<input type="submit" value="SUBMIT"/>
</form>
如果您想同时提交年龄和身份证以及客户名称,您可以像这样:
<php
include "db.php";
$sql="SELECT `age`, `ID`, `customerName` FROM `customers`";
?>
<form id= method="post" action = "iNeedHelpWithThisFile.php">
<select name="customers">Customer Name</option>
<?php foreach ($conn->query($sql) as $row){
$conc=base64_encode($row['age']."|".$row['ID']."|".$row['customerName']); ?>
<option value="<?=$conc;?>"><?=$row['customerName'];?></option>
<?php } ?>
</select>
<input type="submit" value="SUBMIT"/>
</form>
在iNeedHelpWithThisFile中.php你像这样去
$c = strip_tags(htmlspecialchars($_POST['customers']);
$c = base64_decode($c);
$name = explode("|",$c)[2];
$ID = explode("|",$c)[1];
$age = explode("|",$c)[0];
// these statements are not being executed
echo "Customer Name: $name <br />";
echo "Customer ID: $ID <br />";
echo "Age: $age <br />";