2016-04-29 3 views
0

私は、foreachループを実行することによって、ドロップダウンメニューで私のテーブルの項目を表示するPHPを取得しようとしています。それはほとんど機能していますが、それらを同じメニューにすべて表示させたい場合は、アイテムを別々のドロップダウンメニューに表示します。PHPのドロップダウンメニューにmysqlの行を表示しますか?

<?php 
$product_array = $db_handle->runQuery("SELECT * FROM tblproduct ORDER BY id ASC"); 

if (!empty($product_array)): 
?> 
    <form method="post" action="index.php?action=add&code=<?php echo $product_array[$key]["code"]; ?>"> 
    <select id="Select_Product" name="Select_Product" class="select"> 
    <?php 
     foreach($product_array as $key=>$value): 
      echo '<option value=$product_array[$key]["code"]>'.$product_array[$key]["name"].'</option>'; 
     endforeach; 
    ?>  
    </select> 
    <div>Amount:<input type="text" name="quantity" value="1" size="2" /><input type="submit" value="Add to cart" class="btnAddAction" /></div> 
    </form> 

<?php 
endif; 
?> 

私も、私が呼び出すために好きなものにあなたを切り替えました:

<?php 
$product_array = $db_handle->runQuery("SELECT * FROM tblproduct ORDER BY id ASC"); 
if (!empty($product_array)) { 
    foreach($product_array as $key=>$value){ 
?> 
    <form method="post" action="index.php?action=add&code=<?php echo $product_array[$key]["code"]; ?>"> 
    <select id="Select_Product" name="Select_Product" class="select"> 

      <? 
      echo '<option value=$product_array[$key]["code"]>'.$product_array[$key]["name"].'</option>'; 
     } 
       } 
      ?> 
    </select> 
      <div>Amount:<input type="text" name="quantity" value="1" size="2" /><input type="submit" value="Add to cart" class="btnAddAction" /></div> 
    </form> 

答えて

1

は、あなただけのループのあなたのformselect外を移動する必要があり、「テンプレートのPHPを。」論理ブロックを開閉するために角括弧を使用する代わりに、コロンと特別な指示文を組み合わせて使用​​すると、テンプレートをより読みやすくすることができます。大括弧を使いたい場合は、それを求めてください。これは個人的な好みのものです。

0

問題が<form><select>タグは、foreachループ内に位置しているので、表示されますので、彼らはあなたがforeach

if (!empty($product_array)) { 
    ?> 
    <form method="post" action="index.php?action=add&code=<?php echo $product_array[$key]["code"]; ?>"> 
    <select id="Select_Product" name="Select_Product" class="select"> 
     <?php 
     foreach($product_array as $key=>$value){ 
      ... 
0

移動を呼び出す前に、あなたがそれらを置く必要があります$product_array

の各要素に対して表示されますforeachのフォームと選択タグ

0

これを試す

<?php $product_array = $db_handle->runQuery("SELECT * FROM tblproduct ORDER BY id ASC"); ?> 
    <?php if (!empty($product_array)) { ?> 
     <form method="post" action="index.php?action=add"> 
     <select id="Select_Product" name="Select_Product" class="select"> 
     <?php foreach($product_array as $product){ ?> 
      <option value="<?php echo $product['code']; ?>"><?php echo $product["name"]; ?></option> 
     <?php } ?> 
     </select> 
<?php } ?> 
0

これを試してみてください:

<form method="post" action="index.php?action=add&code=<?php echo $code; ?>"> 
    <select id="Select_Product" name="Select_Product" class="select"> 
<?php 
    // YOU SHOULD REMOVE THE FORM & SELECT TAGS FROM THE FOREACH LOOP... THAT SEEMS TO BE THE ISSUE HERE 
    // DO IT LIKE SO, THEN... 
    // IF YOU NEED THE PRODUCT-CODE ON THE FORM'S ACTION ATTRIBUTE, 
    // YOU MAY WANT TO USE JAVASCRIPT TO WORK-AROUND IT SINCE THE VALUE OF 
    // THE SELECT OPTIONS CORRESPONDS TO A SPECIFIC CODE 

    $product_array = $db_handle->runQuery("SELECT * FROM tblproduct ORDER BY id ASC"); 
    if (!empty($product_array)) { 
     foreach($product_array as $key=>$value){ 
    ?> 

     <?php 
      echo '<option data-code="' . $product_array[$key]["code"] . '" value="' . $product_array[$key]["code"] . '">'.$product_array[$key]["name"].'</option>'; 
     } 
    } 
      ?> 
    </select> 
    <div>Amount:<input type="text" name="quantity" value="1" size="2" /><input type="submit" value="Add to cart" class="btnAddAction" /></div> 
</form> 
関連する問題