2013-03-05 66 views
0


我遇到了一個表單問題。我有一個數據庫和一個表單,我使用PHP函數foreach從客戶端獲取所有數據。

複選框:獲取所有值,不僅是最後一個(表單,mysql和php)

在操作頁面(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(其中顯示DATAS):

<?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; ?> 




我想要顯示,每個選定的項目,數量的用戶把文本框。

任何幫助將被高度評價!
謝謝!

回答

1

從代碼的外觀,$文本框是一個充滿ID的數組,像這樣:在你的foreach您需要的文章編號,以引用值,這樣

Array 
(
    [txtbox] => Array 
     (
      [1] => 1 
      [2] => 1 
      [3] => 1 
     ) 

) 

<td><?php echo $_POST['txtbox'][$input['id_article']]; ?></td> 

此外,你應該考慮防止SQL注入。您的sql中的id直接從帖子中傳遞。

希望它有幫助。

+0

哦謝謝你!有用。 關於SQL注入,這不是一個真正的問題,因爲我將是唯一一個將使用此表單的人。但我對如何改變它以防止sql注入感興趣。 – AkdM 2013-03-05 22:19:37

相關問題