2017-06-29 21 views
0

我有一個基於PHP的網頁,有很多輸入字段。一些輸入在邏輯上可以表示爲相關「對象」的數組;具體來說,我有三個這樣的對象數組 - 一個用於「受益者」,一個用於「兒童」,另一個用於「視覺」。輸入字段的基本格式如下:PHP - 只有數組索引輸入字段的某些值被張貼?

<input name='object[index][property]' /> 

例如

<input type='text' data-confirm='beneficiary0CityDisplay' name='beneficiary[0][city]' class='required' /> 

當數據被髮布,我期望接收對象的陣列,每個陣列具有多個屬性;例如,包含具有城市,州和類似特性的四個「受益者」的陣列。對於上述三個對象組中的兩個,這實際上按預期工作;然而,「子」數組的所有對象只有兩個屬性。爲了說明這一點,我的受益人排列如下:

enter image description here

這是應該的;每個「視覺」對象有八個屬性(是的,目前它們是空的,但是這是預期的)。受益人數據也是如此。然而,只有兩個孩子的數據性質正在發佈:

enter image description here

我困惑,這是爲什麼。不僅因爲所有的子輸入字段似乎都具有相同的語法/命名約定,而且受益人和視覺輸入字段也是如此。

例如,這個工程:

<td><input type='text' data-confirm='vision0FirstDisplay' name='vision[0][firstName]' 
       placeholder='First' /> <input type='text' 
      data-confirm='vision0LastDisplay' name='vision[0][lastName]' placeholder='Last' /></td> 
      <td><input data-confirm='vision0SSNDisplay' maxlength=9 type='text' name='vision[0][ssn]' class='ssn' /></td> 
         <td><select data-confirm='vision0GenderDisplay' name='vision[0][gender]'> 
         <option value=''>...</option> 
       <option value='M'>Male</option> 
       <option value='F'>Female</option> 
     </select></td> 
      <td><select data-confirm='vision0MonthDisplay' name='vision[0][month]'> 
        <option value=''>Month</option> 
        <option value='01'>01</option> 
        <option value='02'>02</option> 
        <option value='03'>03</option> 
        <option value='04'>04</option> 
        <option value='05'>05</option> 
        <option value='06'>06</option> 
        <option value='07'>07</option> 
        <option value='08'>08</option> 
        <option value='09'>09</option> 
        <option value='10'>10</option> 
        <option value='11'>11</option> 
        <option value='12'>12</option> 
      </select> <input type='text' data-confirm='vision0DayDisplay' name='vision[0][day]' class='day' 
       placeholder='Day' /> <input type='text' data-confirm='vision0YearDisplay' name='vision[0][year]' 
       class='year' placeholder='Yr.' /></td> 


      <td><select class='visionRelationship' data-confirm='vision0RelationshipDisplay' name='vision[0][relationship]'> 
          <option 
           value=''>Select</option> 
          <option value='Spouse'>Spouse 
          </option> 
          <option value='Dependent'>Dependent </option> 
          </select> 
          </td> 
     </tr> 

            <tr> 
      <td><input type='text' data-confirm='vision1FirstDisplay' name='vision[1][firstName]' 
       placeholder='First' /> <input type='text' 
      data-confirm='vision1LastDisplay' name='vision[1][lastName]' placeholder='Last' /></td> 
      <td><input data-confirm='vision1SSNDisplay' maxlength=9 type='text' name='vision[1][ssn]' class='ssn' /></td> 
         <td><select data-confirm='vision1GenderDisplay' name='vision[1][gender]'> 
       <option value=''>...</option> 
       <option value='M'>Male</option> 
       <option value='F'>Female</option> 
     </select></td> 
      <td><select data-confirm='vision1MonthDisplay' name='vision[1][month]'> 
        <option value=''>Month</option> 
        <option value='01'>01</option> 
        <option value='02'>02</option> 
        <option value='03'>03</option> 
        <option value='04'>04</option> 
        <option value='05'>05</option> 
        <option value='06'>06</option> 
        <option value='07'>07</option> 
        <option value='08'>08</option> 
        <option value='09'>09</option> 
        <option value='10'>10</option> 
        <option value='11'>11</option> 
        <option value='12'>12</option> 
      </select> <input type='text' data-confirm='vision1DayDisplay' name='vision[1][day]' class='day' 
       placeholder='Day' /> <input type='text' data-confirm='vision1YearDisplay' name='vision[1][year]' 
       class='year' placeholder='Yr.' /></td> 

本(除國家和zip字段),不:

<td><input placeholder="First" type='text' data-confirm='child0FirstDisplay' name='child[0][firstName]' /> 
      <input placeholder="Last" type='text' data-confirm='child0LastDisplay' name='child[0][lastName]' /></td> 
     <td><input type='text' class='ssn' maxlength=9 data-confirm='child0SSNDisplay' name='child[0][ssn]' /></td> 
     <td><select name="child[0][month]" data-confirm='child0MonthDisplay'> 
       <option value=''>Month</option> 
       <option value='01'>01</option> 
       <option value='02'>02</option> 
       <option value='03'>03</option> 
       <option value='04'>04</option> 
       <option value='05'>05</option> 
       <option value='06'>06</option> 
       <option value='07'>07</option> 
       <option value='08'>08</option> 
       <option value='09'>09</option> 
       <option value='10'>10</option> 
       <option value='11'>11</option> 
       <option value='12'>12</option> 
     </select> <input placeholder='Day' type='text' data-confirm='child0DayDisplay' name='child[0][day]' 
      class='day' /> <input placeholder='Yr.' type='text' 
      name='child[0][year]' data-confirm='child0YearDisplay' class='year' /></td> 
     <td><select data-confirm='child0GenderDisplay' name='child[0][gender]'> 
     <option value=''>...</option> 
       <option value='M'>Male</option> 
       <option value='F'>Female</option> 
     </select></td> 
     <td><input type='checkbox' data-confirm='child0HandicapDisplay' name='child[0][isHandicap]' /> Handicap <input 
      type='checkbox' data-confirm='child0StudentDisplay' name='child[0][isStudent]' /> Student <input 
      type='checkbox' data-confirm='child0FosterDisplay' name='child[0][isFoster]' /> Foster <input 
      type='checkbox' data-confirm='child0StepDisplay' name='child[0][isStep]' /> Step-Child</td> 


     <td>Check if your <em>child</em> has a different address than yours. 
      <input type='checkbox' class='childAddressCheckbox' 
      name='child[0]diffAddress' /> 
      <div class='childAddressContainer'> 
       <input type='text' data-confirm='child0StreetDisplay' name='child[0]address' 
        placeholder='Street Address' /> <input type='text' 
        name='child[0]city' data-confirm='child0CityDisplay' placeholder='City' /> <select 
        id='child[0][state]' data-confirm='child0StateDisplay' name="child[0][state]"> 
        /// STATES HERE /// 
       </select> <input type='text' name='child[0][zip]' class='zip' /> 
      </div> 
     </td> 
    </tr> 


<tr> 
     <td><input placeholder="First" type='text' data-confirm='child1FirstDisplay' name='child[1][firstName]' /> 
      <input placeholder="Last" type='text' data-confirm='child1LastDisplay' name='child[1][lastName]' /></td> 
     <td><input type='text' maxlength=9 class='ssn' data-confirm='child1SSNDisplay' name='child[1][ssn]' /></td> 
     <td><select name="child[1][month]" data-confirm='child1MonthDisplay' > 
       <option value=''>Month</option> 
       <option value='01'>01</option> 
       <option value='02'>02</option> 
       <option value='03'>03</option> 
       <option value='04'>04</option> 
       <option value='05'>05</option> 
       <option value='06'>06</option> 
       <option value='07'>07</option> 
       <option value='08'>08</option> 
       <option value='09'>09</option> 
       <option value='10'>10</option> 
       <option value='11'>11</option> 
       <option value='12'>12</option> 
     </select> <input placeholder='Day' type='text' data-confirm='child1DayDisplay' name='child[1][day]' 
      class='day' /> <input placeholder='Yr.' type='text' 
      name='child[1][year]' data-confirm='child1YearDisplay' class='year' /></td> 
     <td><select data-confirm='child1GenderDisplay' name='child[1][gender]'> 
     <option value=''>...</option> 
       <option value='M'>Male</option> 
       <option value='F'>Female</option> 
     </select></td> 
     <td><input type='checkbox' data-confirm='child1HandicapDisplay' name='child[1][isHandicap]' /> Handicap <input 
      type='checkbox' data-confirm='child1StudentDisplay' name='child[1][isStudent]' /> Student <input 
      type='checkbox' data-confirm='child1FosterDisplay' name='child[1][isFoster]' /> Foster <input 
      type='checkbox' data-confirm='child1StepDisplay' name='child[1][isStep]' /> Step-Child</td> 


     <td>Check if your <em>child</em> has a different address than yours. 
      <input type='checkbox' class='childAddressCheckbox' 
      name='child[1]diffAddress' /> 
      <div class='childAddressContainer'> 
       <input type='text' data-confirm='child1StreetDisplay' name='child[1]address' 
        placeholder='Street Address' /> <input type='text' 
        name='child[1]city' data-confirm='child1CityDisplay' placeholder='City' /> <select 
        id='child[1][state]' data-confirm='child1StateDisplay' name="child[1][state]"> 
       /// STATES HERE /// 
       </select> <input type='text' name='child[1][zip]' class='zip' /> 
      </div> 
     </td> 
    </tr> 

這可能是簡單的東西,但我有點難倒在這一刻;任何意見,將不勝感激。

回答

1

你是不是跟你的名字的屬性是一致的: child[1]city VS child[1][state]

的正確語法,以便它們可在$ _POST陣列是用方括號包裝密鑰發佈字段,以便child[1][state]是正確的,而child[1]city是不。

另外值得注意的是,複選框僅在檢查時纔會發佈。