0

かなり基本的な質問がありますが、頭がわかりません。

何年も前からうまく機能している PHP フォームがありますが、突然、php フォームの値が投稿データと一緒に渡されません。トラブルシューティングのために、フォームからいくつかの行を削除し始めました。特定のポイントに到達して、for が再び機能し始めました。それで、私は行を追加しましたが、それはちょうど止まりましたか? 私はこれをまったく説明できません。post_max_size 設定とその 120m を確認したので、問題になることはありません。送信ボタンの POST 値でさえ渡されていません。print_r() はデータを表示しません。

私の完全なフォーム(以前は機能していた)は次のとおりです。

<form name="form1" id="form1" action="bsassigncosts.php" method="post">
<table id="hor-minimalist-a">
    <tr>
        <th></th>
        <th>Date & Time</th>
        <th>Parked</th>
        <th><font color=red>Load Number</font></th>
        <th><font color=red>Trailer</font></th>
        <th><font color=red>Weight</font> kg's</th>
        <th><font color=red>Source</font></th>
        <th><font color=red>Destination</font></th>
        <th><font color=red>Cycle Type</font></th>
        <th><font color=red>Rate to be applied</font></th>
        <th>LOC Status / Comments</th>
    </tr>

<? while($row = $loads->fetch(PDO::FETCH_ASSOC)) { ?>
    <tr>
        <td><input type="checkbox" name="checkbox[]" id="checkbox[]" value="<? echo $row['loadnumber']; ?>"></td>
        <td><? echo $row['sarrive']; ?></td>
        <td><input type="radio"  <? if($row['parkinglot']==="yes"){echo "checked='checked'";} ?> disabled >&nbsp;</td>
        <td><input type="text" name="correctedloadnumber<? echo $row['loadnumber']; ?>" id="correctedloadnumber<? echo $row['loadnumber']; ?>" value="<? echo $row['loadnumber']; ?>" class="inputsmall"></td>
        <td>
            <SELECT name="correctedtrailer<? echo $row['loadnumber']; ?>" id="correctedtrailer<? echo $row['loadnumber']; ?>"  class="selectnarrow"> 
            <OPTION value="<? echo $row['trailer']; ?>" selected ><? echo $row['trailer']; ?></option>
            <option>
            <?=$optionstrailer?> 
            </option>
            </SELECT> 
        </td>
            <td><input type="text" name="correctedweight<? echo $row['loadnumber']; ?>" id="correctedweight<? echo $row['loadnumber']; ?>" value="<? echo $row['weight']; ?>" class="inputsmall"></td>
        <td>
            <SELECT name="correctedsource<? echo $row['loadnumber']; ?>" id="correctedsource<? echo $row['loadnumber']; ?>"  class="selectnarrow"> 
            <OPTION value="<? echo $row['source']; ?>" selected ><? echo $row['source']; ?></option>
            <option>
            <?=$optionssource?> 
            </option>
            </SELECT> 
        </td>
        <td>
            <SELECT name="correcteddestination<? echo $row['loadnumber']; ?>" id="correcteddestination<? echo $row['loadnumber']; ?>"  class="selectnarrow"> 
            <OPTION value="<? echo $row['destination']; ?>" selected ><? echo $row['destination']; ?></option>
            <option>
            <?=$optionsdestination?> 
            </option>
            </SELECT> 
        </td>
        <td>
            <SELECT name="correctedcycletype<? echo $row['loadnumber']; ?>" id="correctedcycletype<? echo $row['loadnumber']; ?>"  class="selectnarrow"> 
            <OPTION value="<? echo $row['cycletype']; ?>" selected ><? echo $row['cycletype']; ?></option>
            <option>
            <?=$optionscycle?> 
            </option>
            </SELECT> 
        </td>
        <td>
            <SELECT NAME="rate<? echo $row['loadnumber']; ?>" id="rate<? echo $row['loadnumber']; ?>" class="select"> 
            <OPTION VALUE=0 >
            <?=$optionsrate?> 
            </option>
            </SELECT> 
        </td>
        <td><? if($row['adminstatus']="approvereject"){ if(isset($row['approvedby'])){echo "Rejected by<font color=red> ".$row['approvedby']."</font>:  ".$row['lmcomments'];}}  ?></td>    </tr>
<? } ?>
</table>

<input type="submit" name="testupdate" id="testupdate" value="Updated selected">
<input type="submit" name="park" id="park" value="Park Selected">

</form>

前述のように、これは以前は正常に機能していました。今はそうではありません。トラブルシューティングを行うために、テーブルからいくつかの行を削除しました。これが機能し、投稿値が次のページに渡されるようになりました。

<form name="form1" id="form1" action="bsassigncosts.php" method="post">
<table id="hor-minimalist-a">
    <tr>
        <th></th>
        <th>Date & Time</th>
        <th><font color=red>Trailer</font></th>
        <th><font color=red>Load Number</font></th>
        <th><font color=red>Weight</font> kg's</th>
        <th><font color=red>Source</font></th>
        <th><font color=red>Destination</font></th>
        <th><font color=red>Cycle Type</font></th>
        <th><font color=red>Rate to be applied</font></th>
        <th>LOC Status / Comments</th>
    </tr>
<? while($row = $loads->fetch(PDO::FETCH_ASSOC)) { ?>
    <tr>
        <td><input type="checkbox" name="checkbox[]" id="checkbox[]" value="<? echo $row['loadnumber']; ?>"></td>
        <td><? echo $row['sarrive']; ?></td>
        <td>
            <SELECT name="correctedtrailer<? echo $row['loadnumber']; ?>" id="correctedtrailer<? echo $row['loadnumber']; ?>"  class="selectnarrow"> 
            <OPTION value="<? echo $row['trailer']; ?>" selected ><? echo $row['trailer']; ?></option>
            <option>
            <?=$optionstrailer?> 
            </option>
            </SELECT> 
        </td>   
        <td><input type="text" name="correctedloadnumber<? echo $row['loadnumber']; ?>" id="correctedloadnumber<? echo $row['loadnumber']; ?>" value="<? echo $row['loadnumber']; ?>" class="inputsmall"> </td>
        <td><input type="text" name="correctedweight<? echo $row['loadnumber']; ?>" id="correctedweight<? echo $row['loadnumber']; ?>" value="<? echo $row['weight']; ?>" class="inputsmall"> </td>

        <td><? if($row['adminstatus']="approvereject"){ if(isset($row['approvedby'])){echo "Rejected by<font color=red> ".$row['approvedby']."</font>:  ".$row['lmcomments'];}}  ?></td>




    </tr>
<? } ?>
</table>
</form>

以下のコードでテーブルにエントリをもう 1 つ追加すると、投稿が失敗するようになりました。私はそれを理解することはできません:

<td>
    <SELECT name="correctedsource<? echo $row['loadnumber']; ?>" id="correctedsource<? echo $row['loadnumber']; ?>"  class="selectnarrow"> 
    <OPTION value="<? echo $row['source']; ?>" selected ><? echo $row['source']; ?></option>
    <option>
    <?=$optionssource?> 
    </option>
    </SELECT> 
</td>

ここでアドバイスをいただければ幸いです。これが本当に単純またはばかげた問題である場合は、お詫び申し上げます。

お時間をいただきありがとうございます。

4

1 に答える 1

0

この質問に対する答えは、イライラすることに、コード自体ではなく、渡されるフォーム フィールドの数にありました。

while ループ内の mysql 行の数を減らしてフォームを再送信したところ、正常に処理されました。調査では、max_input_varsフィールドは 1000 に設定されています。これが問題の原因であると推測しており、ホスティング会社に php.ini パラメータを変更するように依頼しました。

助けてくれてありがとう、

于 2013-02-15T10:25:45.877 に答える