我是 php、html 和 mysql 新手。我有一个数据库,其中包含用户名、产品以及他们想要销售该产品的价格。该代码用于带有提交按钮的复选框表单,该按钮的工作方式类似于价格过滤器,提交时应该回显与相应复选框匹配的用户名、产品和价格。 。如果用户选择标记为“0-25”或“100 及以上”的复选框,然后单击提交按钮,则它应该回显拥有该特定价格范围内的商品的所有用户。我在网上查了一下,试图操纵一些接近我所拥有的东西。有人可以帮助我或告诉我如何做到这一点吗?感谢任何帮助
这是我的复选框表单。
<form action="pricefilter.php" method="post">
<br><b>Filter By Price:</b><br><br>
<input type="checkbox" name="$0-$25[]" id="Price" value="0-25"/> $0-$25<br><br>
<input type="checkbox" name="$25-$50[]" id="Price" value="25-50"/> $25-$50<br><br>
<input type="checkbox" name="$50-$100[]" id="Price" value="50-100"/> $50-$100<br><br>
<input type="submit" name="submit" value="Submit" />
</form>
这是我的 php 文件的代码。
<?php
mysql_connect ("localhost", "root","root") or die (mysql_error());
mysql_select_db ("xuswapuser");
$priceFilter = $_GET['priceFilter'];
$filteredResponse = array ();
foreach($priceFilter as $range)
{
if($range == 025)
{
$query = "select * from Books where Price <= 25";
$sql = mysql_query($query);
array_push($filteredResponse, $sql);
}
if($range == 2550)
{
$query = "select * from Books where Price >= 25 AND Price <=50";
$sql = mysql_query($query);
array_push($filteredResponse, $sql);
}
if($range == 5075)
{
$query = "select * from Books where Price >= 50 AND Price <=75";
$sql = mysql_query($query);
array_push($filteredResponse, $sql);
}
if($range == 75100)
{
$query = "select * from Books where Price >= 75 AND Price <=100";
$sql = mysql_query($query);
array_push($filteredResponse, $sql);
}
if($range == 100)
{
$query = "select * from Books where Price >= 100";
$sql = mysql_query($query);
array_push($filteredResponse, $sql);
}
}
?>
<html>
<head>
<title>
XUSWAP
</title>
<script type="text/javascript" src="sorttable.js"></script>
</head>
<body style="margin: 0; padding: 0;">
<div id="header" style="background-color:#339900;height:157px;width:100%;position:relative;"> <!--header area-->
<form id="headerForm" name="headerForm" method="Post" action="" align="right">
<input type="image" src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSN3XIAe50cjq5Cf91GbAywPkChmI5HOAqYxgmRN8F5OhW7I_RT5Q" alt="Placeholder" align="left" width="150" height="150">
<br><br><br>
<input type="text" name="searchInput"id="search" style="width:500px;"/>
<input type="submit" name="searchButton" id="searchButton" value="Search" />
<input type="submit" name="logoutButton" id="logoutButton" value="Logout"/>
<br><br><br>
</form>
</div>
<div id="background" style="background-color:#FFD700;height:100%; width:100%;">
<div id = "pageContent"></div>
<div id="background" style="background-color:#FFD700;height:100%; width:100%;">
<blockquote>
<blockquote>
<blockquote>
<blockquote>
<blockquote>
<blockquote>
<blockquote>
<p>Books </p>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
<blockquote>
<table class="sortable" width="940" height="52" border="0">
<tr>
<td width="200" id="sortable">Username</td>
<td width="253"> Product</td>
<td width="220">Condition</td>
<td width="249">Price</td>
</tr>
<?php do { ?>
<tr>
<td><?php echo $range['id']; ?></td>
<td><?php echo $range['Product']; ?></td>
<td><?php echo $range['Condition']; ?></td>
<td><?php echo $range['Price']; ?></td>
</tr>
<?php } while ($range = mysql_fetch_assoc($sql)); ?>
</table>
最佳答案
哎呀。 :)
- IsChecked() 函数有什么作用?它是已定义的,还是您想要 isset() ?
- 请勿使用 $ 美元符号命名字段。
- 不要将它们设置为数组,如果不是,则您只使用该组一次,因此后面不应该有 []
- 要访问发布的名称字段,您需要 $_POST 超全局变量,您不能直接通过名称访问它:
-
<input name="asd">
如果在 PHP 中发布,将被访问,例如:
$_POST['asd']
检查是否已发布:
if(isset($_POST['asd']) { ...
按照使用 $row[] 数组的惯例,我假设您想要打印查询结果。为了打印结果,您需要获取它们并迭代它们。按照你的方式,它会是:
while ($row = mysql_fetch_assoc($sql)) { ...
但是 mysql_* 函数已被弃用,在您习惯它们之前,最好切换到 mysqli_* 或 PDO 库。
关于php - 带有提交按钮的复选框表单不会回显数据库 php html sql 中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16091794/