2014-02-14 39 views
-1

因此,我一直負責通過抓取小型PHP應用程序來修復錯誤並改進我所能做的事情。我注意到的一件事是更新不是更新,它們是刪除+插入,所以我正在盡我所能來補救。表單數組的隱藏元素未在PHP中設置

爲此,我添加了一個隱藏的元素到項目的大表中的每一行,其中將包含所述項目的ID,以便我知道要更新什麼。問題在於它沒有在$_POST的items數組中設置,我不知道爲什麼。

舉個例子,這裏有一個行HTML:

<div class="row"> 
    <div class="c item_index"><sub>1</sub></div> 
    <input type="hidden" name="ordered_items[1][id]" id="item_id1" value="9" disabled=""> 
    <div class="c qty"> 
    <input type="text" name="ordered_items[1][quantity]" id="quantity1" value="12"> 
    </div> 
    <div class="c vendor_num"> 
    <input type="text" name="ordered_items[1][vendor_number]" id="vendor_num1" value=""> 
    </div> 
    <div class="c item_desc"> 
    <input type="text" name="ordered_items[1][description]" id="desc1" value="12"> 
    </div> 
    <div class="c cost_per"> 
    <input type="text" name="ordered_items[1][cost_per]" id="cost1" value="12.00"> 
    </div> 
    <div class="c total"> 
    <input type="text" name="ordered_items[1][total]" class="total" placeholder="0.00" 
      id="total1" value="144.00" readonly=""> 
    </div> 
</div> 

下面是它的入口在$_POST

[ordered_items] => Array 
     (
      [1] => Array 
       (
        [quantity] => 12 
        [vendor_number] => 
        [description] => 12 
        [cost_per] => 12.00 
        [total] => 144.00 
       ) 

     ) 

我明白任何和所有的建議!

回答

4

刪除disabled=""屬性。發佈時不會提交禁用的輸入。

HTML specification

一些屬性是布爾屬性。元素上布爾屬性的存在表示真值,缺少屬性表示假值。

如果該屬性存在,則其值必須是空字符串或值,該屬性的規範名稱不區分大小寫的ASCII匹配,且沒有前導或尾隨空格。

注意:值「true」和「false」不允許布爾屬性。爲了表示一個錯誤的值,該屬性必須完全省略。

1

嘗試在隱藏字段中刪除disabled=""屬性。

+0

'disabled =「false」'仍然會禁用它。啓用元素的方法是完全刪除屬性。 – Barmar

+0

謝謝,更新的答案。看起來像它可以工作,如果你做'disabled = false',因爲'disabled =「false」'被解析爲布爾值時被評估爲true。 – OK11

+0

屬性不會被解析爲布爾值。在jsfiddle中試試。 – Barmar