2014-05-12 17 views
0

我創建了一個表單(以下)來收集單個輸入。表單被意外關閉,輸入應該在裏面,但不在表格

<?php foreach($products as $product) { ?> 
    <?=form_open('','data-id="'.$product['product_id'].'"')?> 
     <tr class="<?=$product['product_id']?>"> 
      <td> 
       <?=$product['product_name'];?> 
      </td> 

      <td> 
       <div class="form-group"> 
        <div class="col-xs-12"> 

          <!--single input--> 
          <input type="text" class="typeahead clean form-control" data-id="<?=$product['product_id']?>" autocomplete="off" name="<?=$product['product_id']?>"> 
        </div> 
       </div> 
      </td> 

      <td> 
       <div class="text-center"> 

         <!--submit button--> 
         <button type="submit" class="font-tiny capitalized no-underline btn btn-primary btn-sm"> <i class="fa fa-check font-medium"></i> Submit</button> 
       </div> 
      </td> 
     </tr> 
    </form> 
<?php } ?> 

上面的代碼看起來不錯,當我查看頁面源時,但是當我檢查元素時,表單立即關閉。就像這樣:

<form action="http://merchantfuse.localhost:8888/company/add/batch_pending" data-id="7" method="post" accept-charset="utf-8"></form> 

的形式工作不正常,當我提交,提交的值是從位於頭的另一個輸入。有沒有人有任何想法,爲什麼這可能會發生?謝謝

回答

1

開始和結束表html標記(<table></table>)需要在您的窗體標記。這不是有效的HTML所以瀏覽器端的形式馬上拆表一表,見Is a form valid over a tr

這會給你:

<form> 
    <table> 
     <tr> 
      <td> 
       <div>Cell content</div> 
      </td> 
     </tr> 
    </table> 
</form> 
+0

好吧,這是奇怪的是我以前和這樣做它爲我工作得很好。我們只是切換到bootstrap 3,現在停止工作。將表格以外的表格確實修復了

問題,但它從根本上改變了我想要在頁面上執行的操作。我可能會切換到不使用表格的東西。 – Dan

+1

我想你試圖使用表中的每行顯示產品名稱,輸入和提交按鈕的單個產品。您仍然可以使用包裹在整個表格中的表單,但將每個提交按鈕更改爲輸入而不是按鈕,然後爲每個提交輸入提供一個包含product [23]等產品ID的名稱。這樣,你可以知道哪個提交按鈕被點擊。 或者,爲了讓每個項目保留單獨的表單,您可以使用內聯塊代替表格進行佈局。 – Courtney7

+0

好的謝謝你的建議! – Dan