ホームページ >バックエンド開発 >PHPチュートリアル >$_POST は、smarty テンプレートによって自動生成された 2 次元配列を受け取ることができません
同じページに同じデータが複数あり、グループに分割されています。
さて、問題が発生しました。
入力用にsmartによって自動生成された名前シーケンスを取得できません。
このうち、インデックス 0 と 1 は変数を介して Smarty によって生成されます。
720c350ab5643a23dd609151e88543e8 b22208502f7837ad89d43caa9f9a2167 ;input type="text" name=my[1][myname] value=""> 589a43b880590b2b0ae1d09b5f909922 $_POST ではこれらの値を取得できません。なぜですか?
var_dump($_POST[my]);
array (size=2)
0 => 文字列 'Array'
1 => 文字列 Array'
助けてください。
ディスカッションへの返信 (解決策)
バグ?
print_r($_POST['my']); で何が見えるでしょうか?何もない
バグ?
新しいページを使用しましたが、PHP マニュアルに従って問題ありませんでした
しかし、公式に開発されたプログラムでは取得できませんでした。
var_dump($_POST[my]);
配列 (size=2) を表示します
0 => string 'Array'
1 => string Array'
どうして何もないのですか?
タグは閉じていますか?
720c350ab5643a23dd609151e88543e8
09b27dcaa261b1713d12bb9d0f4674cb
退屈ですよね?
var_dump($_POST[my]);
配列 (size=2) を表示します
0 => string 'Array'
1 => string Array'
どうして何もないのですか?
print_r($_POST['my'])
出力も
ラベルを閉じましたか?
f60ad899c8fb2115b1eca7055f9e4443
=>
6860c63147036cf6779c54bed390a9ba
もちろんです閉まっています、ふふ。
名前は文字列でなければならないからですか?
名前は文字列でなければならないからですか?
そうではありません。
この問題についてはどうすればよいですか?段階的に説明すると、1 次元配列には問題ありませんが、2 次元配列には問題があります。
ブラウザで「Web ページのソース コードを表示」すると何が表示されますか?
ソース コードは Smarty によって自動的に生成されます。
<tr> <td class="lable" colspan="6"><p align="center">职位信息</p></td> </tr> <tr> <td class="lable">职位名称</td> <td colspan="5"><input type="text" name="job[0][jobname]" value="营销经理" />营销经理</td> </tr> <!-- <tr> <td class="lable">行业类别</td> <td> 44
<tr> <td class="lable">职位名称</td> <td colspan="5"><input type="text" name="job[1][jobname]" value="销售总监" />销售总监</td> </tr>
そして、この段落
それで、フォームを受け取ったときに他に何をしましたか?
Smarty はフォームデータの受信と処理を行ってくれないようです
受信時に
$jobname = $_POST["job"];var_dump($jobname);を使用します
print_r を使用します
出力は
Array ( [0] => Array [1] => Array ) です
次に、フォームのターゲットをアクションに変更しますこのように =test.php
test.php 以上です
問題が見つかりました、それはシステム フレームワークのフィルタリングの問題でした。