0

我正在尝试比较产品并在表格中显示结果。我有一个表格页面和一个表格页面,问题是当我在表格页面中从两个下拉列表中选择相同的产品(值)时,它只会在表格中显示一列并返回一个包含一个数组的多维数组不是两个相同的数组。
当我从 from 和 submit 中选择两个不同的值时,会显示两个选择。
如果用户选择相同的产品/ID,如何避免出现一个空列?

我在想也许加载第二个下拉列表并从列表中减去第一个下拉选择的值?我不知道该怎么做或者也许有更简单的方法,比如表单验证。有人可以告诉我怎么做吗?谢谢

表格.html

<?php
$products_dropdown = "select * from product_dp" ;
$statement = $dbh->prepare($products_dropdown);
$statement->execute();
$result_dp = $statement->fetchAll();?>

<form action="table.html" method="post">
<fieldset class="custimg">
<legend>Product Comparison</legend>
<div class="row">
<div class="large-block-grid-4"><br /></div>
<div class="large-block-grid-4">
<select name="id1" id="id1" class="small button secondary dropdown radius">`
<?php foreach ($result_dp as $row){
echo "<option value='".$row['id']."'>".$row['sku']."</option>";}?>
</select>
</div>
<div class="large-block-grid-4">
<select name="id2" id="id2" class="small button secondary dropdown radius">
<?php foreach ($result_dp as $row){
echo "<option value='".$row['id']."'>".$row['sku']."</option>"; }?>
</select>
<input type="submit" value="Compare" class="tiny button secondary" />
</div>
</div>

表.html

$id1 = $_POST[id1]; 
$id2 = $_POST[id2];

$statement = $dbh->prepare("select * from products_specs where id IN ($id1,$id2)");
$statement->execute(array(':id1' => $id1, ':id2'=> $id2));
$statement->setFetchMode(PDO::FETCH_ASSOC);
$subrows = $statement->fetchAll();

print_r($subrows);
$yes = '<img src="images/icons/yes.png" width="16" height="16" />';
$no = '<img src="images/icons/no.png" width="16" height="16" />';?>

<table >
<thead>
<tr>
<th width="100"></th>
<th width="275"><?php echo $subrows[0][image]; ?></th>
<th width="275"><?php echo $subrows[1][image]; ?></th>
</tr>
<tr text-align="center">
<th width="100"></th>
<th class="centered-cell1"><font color="#990000"><?php echo  "ID"." ".$subrows[0][id]; ?></th>
<th class="centered-cell1"><font color="#990000"><?php echo  "ID"." ".$subrows[1][id]; ?></th>
</tr>
</thead>
<tbody>
<tr>
<td > Capacity </td>
<td align="center"><?php echo  $subrows[0][capacity]; ?> </td>
<td align="center"><?php echo  $subrows[1][capacity]; ?> </td>
</tr>
<tr>
<td > Memory </td>
<td align="center"><?php echo  $subrows[0][mem]; ?> </td>
<td align="center"><?php echo  $subrows[1][mem]; ?> </td>
</tr>

等等……

4

1 回答 1

0

非常简单的解决方案。执行查询后使用代码:

if (!isset($subrows[1]))
    $subrows[1] = $subrows[0];

如果需要,让用户将产品与自身进行比较。

于 2013-11-13T16:23:50.547 回答