我的表格有问题。我有一个数据库,并使用表格从客户端使用php函数foreach获取所有数据。
在操作页面(invoice.php)上,我可以显示所有选定的项目,但每次我为每个项目设置数量时,它只会显示我填写的最后一个文本框。
我不知道如何解释它,所以这是我的代码:
form.php:
<input type="text" name="txtbox[<?php echo $input->id_article; ?>]" value="<?php echo $input->id_article; ?>" placeholder="1" style="text-align: center; width:30px;"></input>
<input
type="checkbox"
name="checked_articles[]"
value="<?php echo $input->id_article; ?>">
<?php echo "(".
($input->ref_article).")".
($input->nom_article)." (".
($input->prix_article)." €)"; ?><br>
<?php endforeach; ?>
invoice.php(带有mysql数据查询的标题):
if(isset($_POST['checked_articles'])){
foreach($_POST['checked_articles'] as $chkbx){
$sql_articles = 'SELECT * FROM articles WHERE id_article="'.$chkbx.'"';
$req_articles = mysql_query($sql_articles) or die('Erreur SQL !<br>'.$sql_articles.'<br>'.mysql_error());
$data_articles[] = mysql_fetch_assoc($req_articles);
}}
$textbox = $_POST['txtbox'][$chkbx];
invoice.php(显示数据的位置):
<?php foreach ($data_articles as $input) : ?>
<tr>
<td><?php echo $input['ref_article']; ?></td>
<td><?php echo $input['nom_article']; ?></td>
<td><?php echo $textbox; ?></td> <!-- Where I want the quantity to be displayed -->
<td><?php echo $input['prix_article']; ?> €</td>
<td><?php echo $input['prix_article']*$textbox; ?> €</td>
</tr>
<?php endforeach; ?>
我想为每个选定的项目显示用户在文本框中放置的数量。
任何帮助都会得到高度赞赏!
谢谢!
答案 0 :(得分:1)
从代码的外观来看,$ textbox是一个填充了id的数组,如下所示:
Array
(
[txtbox] => Array
(
[1] => 1
[2] => 1
[3] => 1
)
)
在foreach中,您需要使用文章ID引用该值,如下所示:
<td><?php echo $_POST['txtbox'][$input['id_article']]; ?></td>
另外,你应该考虑防止sql注入。你的SQL中的id直接从帖子传递。
希望它有所帮助。