首页 > 解决方案 > 在某些情况下输入表单数组值 null

问题描述

我有一个包含近 13000 个输入(复选框)的大表单,这是 html/smarty 代码,我的问题是在检查表单末尾的复选框(最后一个)时,它们的值始终为空。我像这样调试了 $_POST 值

 if (isset($_POST['partsfilter'])) {
    $vars = $_POST['partsfilter'];
    var_dump($vars[5366]);
    var_dump($vars[5368]);
    var_dump($vars[5525]); this one return null when it shouldn't be 
 }

我在 htaccess 文件中试过这个

php_value post_max_size 20M
php_value upload_max_filesize 20M
php_value max_input_vars=15000

但问题始终存在我正在考虑使用 AJAX 从选中的复选框中获取值并提交表单,因为提交的(选中的输入)值不是太多(至少不是 13000)

  <form  method="post" enctype="multipart/form-data" id="frmpost">
     <input type="hidden" name="hdn_id_product" value="{$s_product['id_product']}" />
    {foreach from=$make_list item=mark}
    <ul class="acnav__list acnav__list--level1">

        <!-- start group 1 -->
        <li class="has-children">
            <div class="acnav__label ">
               <div class="row">
                   <div class="col-md-4">{$mark.mid} {$mark.name}</div>    
                    <div class="col-md-6">
                       <div class="row">
                          <div class="col-md-3">
                              <div class="checkbox">
                                 <label><input type="checkbox" name="comp" value="">Compatible</label>
                              </div>
                           </div>
                           <div class="col-md-2">
                              <div class="checkbox">
                                 <label><input type="checkbox" name="front" value="">Front</label>
                               </div>
                            </div>
                            <div class="col-md-2">
                               <div class="checkbox">
                                  <label><input type="checkbox"  value="">Rear</label>
                                </div>
                            </div>
                            <div class="col-md-2">
                               <div class="checkbox">
                                 <label><input type="checkbox" value="">Left</label>
                               </div>
                             </div>
                            <div class="col-md-2">
                                <div class="checkbox">
                                  <label><input type="checkbox" value="">Right</label>
                                 </div>
                             </div>
                            </div>
                          </div>    
                          <div class="col-md-2" style="margin-top: 10px;">
                                       Years 
                          </div>    
                       </div>
                                
                                    <!-- add fields -->
            </div>
            <!-- start level 2 -->
            {foreach from=$mark.cc item=cc}
            <ul class="acnav__list acnav__list--level2">
                <li class="has-children">
                    <div class="acnav__label acnav__label--level2">
                        <div style="width: 5%;float: left;opacity: 0.5;">{$cc.ccid}</div> <div style="width: 90%;float: left">{$cc.ccname}</div> 
                    </div>
                    <!-- start level 3 -->
                    <ul class="acnav__list acnav__list--level3">
                        {foreach from=$cc.models item=model}
                        
                        <li>
                                                        
                                                            
                                 <div class="acnav__link acnav__link--level3">
                                             <div class="row">
                                                    <div class="col-md-4">
                                                       <div style="width: 10%;float: left;display: inline-block;">{$model.mid}</div> <div style="width: 30%;float: left;display: inline-block;">{$cc.ccname}</div> <div style="display: inline;width:60%">{$model.name}</div> 
                                                         </div>
                                                     <div class="col-md-6">
                                                                        <div class="row">
                                                                            <div class="col-md-3">
                                                                                <div class="checkbox">
                                                                                    <label><input type="checkbox" {if isset($results) && isset($results[$model.mid])}{if $results[$model.mid]['compatible'] == '1'}checked{/if}{/if} value="1" name="partsfilter[{$model.mid}][comp]" ></label>
                                                                                </div>
                                                                            </div>
                                                                            <div class="col-md-2">
                                                                                <div class="checkbox">
                                                                                    <label><input type="checkbox"  {if isset($results) && isset($results[$model.mid])}{if $results[$model.mid]['front'] == '1'}checked{/if}{/if} name="partsfilter[{$model.mid}][front]" value="1"></label>
                                                                                </div>
                                                                            </div>
                                                                            <div class="col-md-2">
                                                                                <div class="checkbox">
                                                                                    <label><input type="checkbox"  {if isset($results) && isset($results[$model.mid])}{if $results[$model.mid]['rear'] == '1'}checked{/if}{/if} name="partsfilter[{$model.mid}][rear]" value="1"></label>
                                                                                </div>
                                                                            </div>
                                                                            <div class="col-md-2">
                                                                                <div class="checkbox">
                                                                                    <label><input type="checkbox"  {if isset($results) && isset($results[$model.mid])}{if $results[$model.mid]['l_left'] == '1'}checked{/if}{/if} name="partsfilter[{$model.mid}][left]" value="1"></label>
                                                                                </div>
                                                                            </div>    
                                                                            <div class="col-md-2">
                                                                                <div class="checkbox">
                                                                                    <label><input type="checkbox"  {if isset($results) && isset($results[$model.mid])}{if $results[$model.mid]['r_right'] == '1'}checked{/if}{/if} name="partsfilter[{$model.mid}][right]" value="1"></label>
                                                                                </div>
                                                                            </div>

                                                                        </div>
                                                                    </div>
                                                                    <div class="col-md-2">
                                                                        {assign var=thisyear value=$smarty.now|date_format:"%Y"}
                                                                        {if isset($results) && isset($results[$model.mid])}
                                                                        {assign var="years" value=","|explode:$results[$model.mid]['year']}     
                                                                        {else}
                                                                        {assign var="years" value=""}
                                                                        {/if}
                                                                        <div class="row">
                                                                            <select name="partsfilter[{$model.mid}][yearbegin]" class="col-md-6">
                                                                                {for $foo=1990 to $thisyear}
                                                                                    <option {if  null !== $years AND $years!=""}{if $years[0] == $foo}selected{/if}{/if} value="{$foo}">{$foo}</option>
                                                                                {/for}
                                                                            </select>
                                                                            <select name="partsfilter[{$model.mid}][yearfinish]" class="col-md-6">
                                                                                {for $foo=1990 to $thisyear}
                                                                                    <option {if  null !== $years AND $years!=""}{if $years[1] == $foo}selected{/if}{/if} value="{$foo}">{$foo}</option>
                                                                                {/for}
                                                                            </select>
                                                                        </div>
                                                                    </div> 
                                                                </div>        
                                                            </div>
                                                            
                                                           
                        </li>
                        {/foreach}
                    </ul>
                                            
                    <!-- end level 3 -->
                </li>

                
            </ul>
            <!-- end level 2 -->
                            {/foreach}
        </li>
        <!-- end group 1 -->

        <!-- start group 2 -->
        
        <!-- end group 2 -->

        <!-- start group 3 -->
        
        <!-- end group 3 -->

    </ul>
    <!-- end level 1 -->
            {/foreach}
            <div class="panel-footer"><button class="btn btn-default pull-right" type="submit" name="assign_request"><i class="process-icon-save"></i> Save Information </button></div>

             </form>

var_dump($_POST)

 array (size=3)
  'hdn_id_product' => string '43' (length=2)
  'partsfilter' => 
    array (size=42)
      5798 => 
        array (size=2)
          'comp' => string '1' (length=1)
          'front' => string '1' (length=1)
      5799 => 
        array (size=2)
          'comp' => string '1' (length=1)
          'front' => string '1' (length=1)
      5806 => 
        array (size=2)
          'comp' => string '1' (length=1)
          'front' => string '1' (length=1)
      5863 => 
        array (size=2)
          'comp' => string '1' (length=1)
          'front' => string '1' (length=1)
      5886 => 
        array (size=2)
          'comp' => string '1' (length=1)
          'front' => string '1' (length=1)
      5872 => 
        array (size=2)
          'comp' => string '1' (length=1)
          'front' => string '1' (length=1)
      6838 => 
        array (size=2)
          'comp' => string '1' (length=1)
          'front' => string '1' (length=1)
      6811 => 
        array (size=2)
          'comp' => string '1' (length=1)
          'front' => string '1' (length=1)
      6820 => 
        array (size=2)
          'comp' => string '1' (length=1)
          'front' => string '1' (length=1)
      5979 => 
        array (size=2)
          'comp' => string '1' (length=1)
          'front' => string '1' (length=1)
      5994 => 
        array (size=2)
          'comp' => string '1' (length=1)
          'front' => string '1' (length=1)
      6001 => 
        array (size=2)
          'comp' => string '1' (length=1)
          'front' => string '1' (length=1)
      6004 => 
        array (size=2)
          'comp' => string '1' (length=1)
          'front' => string '1' (length=1)
      6828 => 
        array (size=2)
          'comp' => string '1' (length=1)
          'front' => string '1' (length=1)
      6081 => 
        array (size=2)
          'comp' => string '1' (length=1)
          'front' => string '1' (length=1)
      6092 => 
        array (size=2)
          'comp' => string '1' (length=1)
          'front' => string '1' (length=1)
      6193 => 
        array (size=2)
          'comp' => string '1' (length=1)
          'front' => string '1' (length=1)
      4846 => 
        array (size=2)
          'comp' => string '1' (length=1)
          'front' => string '1' (length=1)
      6206 => 
        array (size=2)
          'comp' => string '1' (length=1)
          'front' => string '1' (length=1)
      6224 => 
        array (size=2)
          'comp' => string '1' (length=1)
          'front' => string '1' (length=1)
      6244 => 
        array (size=2)
          'comp' => string '1' (length=1)
          'front' => string '1' (length=1)
      6274 => 
        array (size=2)
          'comp' => string '1' (length=1)
          'front' => string '1' (length=1)
      6338 => 
        array (size=2)
          'comp' => string '1' (length=1)
          'front' => string '1' (length=1)
      6279 => 
        array (size=2)
          'comp' => string '1' (length=1)
          'front' => string '1' (length=1)
      5203 => 
        array (size=2)
          'comp' => string '1' (length=1)
          'front' => string '1' (length=1)
      6327 => 
        array (size=2)
          'comp' => string '1' (length=1)
          'front' => string '1' (length=1)
      6479 => 
        array (size=2)
          'comp' => string '1' (length=1)
          'front' => string '1' (length=1)
      6540 => 
        array (size=2)
          'comp' => string '1' (length=1)
          'front' => string '1' (length=1)
      6542 => 
        array (size=2)
          'comp' => string '1' (length=1)
          'front' => string '1' (length=1)
      6545 => 
        array (size=2)
          'comp' => string '1' (length=1)
          'front' => string '1' (length=1)
      6579 => 
        array (size=2)
          'comp' => string '1' (length=1)
          'front' => string '1' (length=1)
      6649 => 
        array (size=2)
          'comp' => string '1' (length=1)
          'front' => string '1' (length=1)
      6639 => 
        array (size=2)
          'comp' => string '1' (length=1)
          'front' => string '1' (length=1)
      6650 => 
        array (size=2)
          'comp' => string '1' (length=1)
          'front' => string '1' (length=1)
      5366 => 
        array (size=2)
          'comp' => string '1' (length=1)
          'front' => string '1' (length=1)
      5367 => 
        array (size=3)
          'comp' => string '1' (length=1)
          'front' => string '1' (length=1)
          'rear' => string '1' (length=1)
      5368 => 
        array (size=3)
          'comp' => string '1' (length=1)
          'front' => string '1' (length=1)
          'rear' => string '1' (length=1)
      5369 => 
        array (size=2)
          'comp' => string '1' (length=1)
          'front' => string '1' (length=1)
      5370 => 
        array (size=2)
          'comp' => string '1' (length=1)
          'front' => string '1' (length=1)
      5371 => 
        array (size=2)
          'comp' => string '1' (length=1)
          'front' => string '1' (length=1)
      5372 => 
        array (size=2)
          'comp' => string '1' (length=1)
          'front' => string '1' (length=1)
      5373 => 
        array (size=2)
          'comp' => string '1' (length=1)
          'front' => string '1' (length=1)
       'partsfilterYears' => 
    array (size=1457)
      5798 => 
        array (size=2)
          'yearbegin' => string '1990' (length=4)
          'yearfinish' => string '1990' (length=4)
      5799 => 
        array (size=2)
          'yearbegin' => string '1990' (length=4)
          'yearfinish' => string '1990' (length=4)
      5800 => 
        array (size=2)
          'yearbegin' => string '1990' (length=4)
          'yearfinish' => string '1990' (length=4)
      5801 => 
        array (size=2)
          'yearbegin' => string '1990' (length=4)
          'yearfinish' => string '1990' (length=4)
      5802 => 
        array (size=2)
          'yearbegin' => string '1990' (length=4)
          'yearfinish' => string '1990' (length=4)
      5803 => 
        array (size=2)
          'yearbegin' => string '1990' (length=4)
          'yearfinish' => string '1990' (length=4)
      5804 => 
        array (size=2)
          'yearbegin' => string '1990' (length=4)
          'yearfinish' => string '1990' (length=4)
      5805 => 
        array (size=2)
          'yearbegin' => string '1990' (length=4)
          'yearfinish' => string '1990' (length=4)
      5806 => 
        array (size=2)
          'yearbegin' => string '1990' (length=4)
          'yearfinish' => string '1990' (length=4)
      5807 => 
        array (size=2)
          'yearbegin' => string '1990' (length=4)
          'yearfinish' => string '1990' (length=4)
      5808 => 
        array (size=2)
          'yearbegin' => string '1990' (length=4)
          'yearfinish' => string '1990' (length=4)
      5809 => 
        array (size=2)
          'yearbegin' => string '1990' (length=4)
          'yearfinish' => string '1990' (length=4)
      5810 => 
        array (size=2)
          'yearbegin' => string '1990' (length=4)
          'yearfinish' => string '1990' (length=4)
      
       
      

标签: phpformspost

解决方案


托管服务提供商通过调整这个 php 值解决了这个问题

php_value post_max_size 20M
php_value upload_max_filesize 20M
php_value max_input_vars=15000

推荐阅读