ホームページ >バックエンド開発 >PHPチュートリアル >$_POST は、smarty テンプレートによって自動生成された 2 次元配列を受け取ることができません

$_POST は、smarty テンプレートによって自動生成された 2 次元配列を受け取ることができません

WBOY
WBOYオリジナル
2016-06-23 14:03:05986ブラウズ

同じページに同じデータが複数あり、グループに分割されています。

さて、問題が発生しました。
入力用に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']); で何が見えるでしょうか?

バグ?

print_r($_POST['my']); で何が見えるでしょうか?

何もない

バグ?

print_r($_POST['my']); で何が見えるでしょうか?

新しいページを使用しましたが、PHP マニュアルに従って問題ありませんでした
しかし、公式に開発されたプログラムでは取得できませんでした。

退屈ですよね?

var_dump($_POST[my]);
配列 (size=2) を表示します
0 => string 'Array'
1 => string Array'

print_r($_POST['my ']);

どうして何もないのですか?

タグは閉じていますか?
720c350ab5643a23dd609151e88543e8
09b27dcaa261b1713d12bb9d0f4674cb

退屈ですよね?
var_dump($_POST[my]);
配列 (size=2) を表示します
0 => string 'Array'
1 => string Array'

print_r($_POST['my ']);

どうして何もないのですか?

print_r($_POST['my'])
出力も

Array ( [0] => Array [1] => Array )


ラベルを閉じましたか?
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);
を使用します
出力結果は
array (size=2)
0 => string 'Array' (length=5)

1 => string 'Array' (length=5)

print_r を使用します
出力は
Array ( [0] => Array [1] => Array ) です

次に、フォームのターゲットをアクションに変更しますこのように =test.php
test.php 以上です

print_r($_POST);

結果を見てください

問題が見つかりました、それはシステム フレームワークのフィルタリングの問題でした。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。