获取表中的数组复选框和文本框的值

时间:2015-02-16 04:11:42

标签: php arrays

我是php的初学者,我希望有人可以帮助我。

我有一个表格,其中有一个复选框用于选择一个项目,一个文本框用于指示该人想要借用的数量。我想知道如何检索这两个数据,然后将它们保存在我的数据库中。

这是我的代码的一部分:

<td width="30">
 <input id="optionsCheckbox" class="uniform_on" name="selector[]" type="checkbox" value="<?php echo $id; ?>">
 </td>
<td><?php echo $row['item_code']; ?></td>
<td><?php echo $row['item_name']; ?></td>
<td align="center">
<img class="img-rounded" src="<?php echo $row['item_image'];?>" border="0" onMouseOver="showtrail('<?php echo $row['item_image'];?>','<?php echo $row['item_code'].": ".$row['item_name'];?> ',200,5)" onMouseOut="hidetrail()"></a></td>
<td><?php echo $row['item_quantity'] - $row['item_consumption']; ?> <?php echo $row['unit']; ?></td>
<td><input type="text" name="consume[]" pattern="[0-9]{1,4}"/></td>

这是我到目前为止所拥有的:

$id=$_POST['selector'];
$consume= $_POST['consume'];

$N = count($id);
for($i=0; $i < $N; $i++)
{

$query = $conn->query("select * from item where item_id ='$id[$i]'")or die(mysql_error());
$row = $query->fetch();
$code = $row['item_code'];
$name = $row['item_name'];

echo $code; echo $name; 
echo $id;


}
$x = count($consume);
for($y=0; $y < $x; $y++)
{echo $consume;
}

回声仅用于检查数据是否通过。在我查询表格插入之前,我只是确保他们做了。

我想要做的是将它们张贴在另一页上,将它们显示在一张桌子(购物车中),然后让借款人用他的详细信息填写表格。


好的,使用gul的答案,这就是我所做的:

$id = $_POST['selector'];
$consume = $_POST['consume'];

//array var for getting the values
$ids = ''; $consumes='';

//loop the posted array
for($i=0;$i<count($id);$i++)
{
$ids .= $id[$i].',';
$consumes.="'".$consume[$i]."',";
}

//remove the last comma
$ids = substr($ids,0,-1);
$consumes = substr($consumes,0,-1);

$query = $conn->query("select * from item where item_id IN($ids)")or die(mysql_error());

//table element
echo "<table border='1' style='border-collapse: 
collapse;border-color: silver;'>";  
echo "<tr style='font-weight: bold;'>";  
echo "<td width='150' align='center'>Item Code</td>"; 
echo "<td width='150' align='center'>Item Name</td>";
echo "<td width='150' align='center'>Quantity</td>";   
echo "</tr>"; 


//get data in table
$row = $query->fetch(); 
$code = $row['item_code'];
$name = $row['item_name'];
$table ="";
$table.="<tr>";
$table.="<td>".$code."</td>";
$table.="<td>".$name."</td>";
$table.="<td>".$consumes."</td>";
$table.="</tr>";

$table.="</table>";

//echo the table
echo $table;

然而,当我选择多个项目时,只显示最后一个项目,但消费显示如下:

enter image description here

使用单引号和逗号消耗一个单元格中的节目。帮助

2 个答案:

答案 0 :(得分:0)

试试这样:

//first get the post
$id = $_POST['selector'];
 $consume = $_POST['consume'];

//array var for getting the values
$ids = ''; $consumes='';

//loop the posted array
for($i=0;$i<count($id);$i++)
{
   $ids .= $id[$i].',';
   //$consumes.="'".$consume[$i]."',";
}

//remove the last comma
$ids = substr($ids,0,-1);

$query = $conn->query("select * from item where item_id IN($ids))or die(mysql_error());

//table element
$table = "<table border='1'>";
$table.="<tr>";
$table.="<th>Code</th><th>Name</th>";
$table.="</tr>";
//get data in table
$row = $query->fetch();
$code = $row['item_code'];
$name = $row['item_name'];
$table.="<tr>";
$table.="<td>".$code."</td>";
$table.="<td>".$name."</td>";
$table.="</tr>";

$table.="</table>";

//echo the table
echo $table;

答案 1 :(得分:0)

好的,所以我尝试了这个并且它有效。感谢gul帮助我。

$id = $_POST['selector'];
$consume = $_POST['consume'];

//array var for getting the values
$data = array();

//loop the posted array
for($i=0;$i<count($id);$i++)
{
$row = array('selector'=>$id[$i],'consume'=>$consume[$i]);
//push in array
array_push($data,$row);

$query = $conn->query("select * from item where item_id ='$id[$i]'")or die(mysql_error());
$row = $query->fetch();
$code = $row['item_code'];
$name = $row['item_name'];




    while ($row = $query->fetch()) {
    $id = $row['id'];
    }
    ?>
    <tr>

    <td><?php echo $code; ?></td> 
    <td><?php echo $name; ?></td> 
    <td><?php echo $consume[$i]; ?></td> 
    <td></td> 
    </tr>
<?php } ?>    

    </tbody>
</table>