即使在 PHP IF.. 语句之后,Select 选项仍然出现在页面上
Select option still appears on the page even after PHP IF.. statement
我正在使用 PHP 开发在线商店,因此在显示产品详细信息的 productdetails.php
处,我编写了以下代码:
if(!empty($pro_colors))
{
echo "
<div class=''>
<h4 class='' style='float:right'> :رنگ <span>*</span></h4>
<select class='select-css'>
";
foreach($pro_colors as $colors)
{
echo "
<option value='$colors'>$colors</option>
";
}
echo "
</select>
</div></br>
";
}
所以它应该做的很简单,如果在数据库中向产品添加了任何颜色,它必须显示 select 选项,如果没有向数据库添加颜色,select选项一定不能出现!
但是当db上没有数据作为颜色时,它会显示:
然而,我的 table 看起来像这样:
所以请告诉我,我该如何解决这个问题?!
你必须检查颜色是否为空。像这样
foreach($pro_colors as $colors)
{
if (!empty($colors)) {
echo "
<option value='$colors'>$colors</option>
";
}
}
您首先使用了 if(!empty($pro_colors)) 实际上它不会检查每种颜色,因为 $pro_colors 是一个数组。
编辑:根据@hasta dhana 评论。首先你需要检查数据库是否有任何颜色数据。由于您没有完整的代码,我正在编写此示例代码以便您理解:
$sql = "SELECT count(*) FROM tablenamehere WHERE product_colors != ''";
$result = $con->prepare($sql);
$result->execute();
$number_of_rows = $result->fetchColumn();
if ($number_of_rows > 0 ) {
echo "
<div class=''>
<h4 class='' style='float:right'> :رنگ <span>*</span></h4>
<select class='select-css'>
";
foreach($pro_colors as $colors)
{
if (!empty($colors)) {
echo "
<option value='$colors'>$colors</option>
";
}
}
echo "
</select>
</div></br>
";
}
您的数组 $pro_colors
似乎有一个空值。您可以使用 array_filter
清除数组中的空值和空值
$pro_colors = array_filter($pro_colors);
if(!empty($pro_colors))
{
echo "
<div class=''>
<h4 class='' style='float:right'> :رنگ <span>*</span></h4>
<select class='select-css'>
";
foreach($pro_colors as $colors)
{
echo "
<option value='$colors'>$colors</option>
";
}
echo "
</select>
</div></br>
";
}
我正在使用 PHP 开发在线商店,因此在显示产品详细信息的 productdetails.php
处,我编写了以下代码:
if(!empty($pro_colors))
{
echo "
<div class=''>
<h4 class='' style='float:right'> :رنگ <span>*</span></h4>
<select class='select-css'>
";
foreach($pro_colors as $colors)
{
echo "
<option value='$colors'>$colors</option>
";
}
echo "
</select>
</div></br>
";
}
所以它应该做的很简单,如果在数据库中向产品添加了任何颜色,它必须显示 select 选项,如果没有向数据库添加颜色,select选项一定不能出现!
但是当db上没有数据作为颜色时,它会显示:
然而,我的 table 看起来像这样:
所以请告诉我,我该如何解决这个问题?!
你必须检查颜色是否为空。像这样
foreach($pro_colors as $colors)
{
if (!empty($colors)) {
echo "
<option value='$colors'>$colors</option>
";
}
}
您首先使用了 if(!empty($pro_colors)) 实际上它不会检查每种颜色,因为 $pro_colors 是一个数组。
编辑:根据@hasta dhana 评论。首先你需要检查数据库是否有任何颜色数据。由于您没有完整的代码,我正在编写此示例代码以便您理解:
$sql = "SELECT count(*) FROM tablenamehere WHERE product_colors != ''";
$result = $con->prepare($sql);
$result->execute();
$number_of_rows = $result->fetchColumn();
if ($number_of_rows > 0 ) {
echo "
<div class=''>
<h4 class='' style='float:right'> :رنگ <span>*</span></h4>
<select class='select-css'>
";
foreach($pro_colors as $colors)
{
if (!empty($colors)) {
echo "
<option value='$colors'>$colors</option>
";
}
}
echo "
</select>
</div></br>
";
}
您的数组 $pro_colors
似乎有一个空值。您可以使用 array_filter
$pro_colors = array_filter($pro_colors);
if(!empty($pro_colors))
{
echo "
<div class=''>
<h4 class='' style='float:right'> :رنگ <span>*</span></h4>
<select class='select-css'>
";
foreach($pro_colors as $colors)
{
echo "
<option value='$colors'>$colors</option>
";
}
echo "
</select>
</div></br>
";
}