0

これは私を夢中にさせているので、どんな助けも大歓迎です。

name=opc[1] cat[2] などのレコードを投稿しています。理想的には、これにより配列が作成されます。投稿されたデータを print_r すると、配列のように見えますが、キーの周りに目盛りとスラッシュが付いています。

ただし、変数、$array、または配列に等しいものを設定すると、print_r($array) は 0 を返します。Echo は配列を返します。

これに関連している可能性があります。配列に対して foreach を実行しようとすると、無効な引数エラーが発生します。投稿されたデータを変数に設定して有効な配列として使用できるようにするには、投稿されたデータに対して何をする必要がありますか。implode、explode、stripslashes のさまざまな組み合わせを試して、より良い形式にしましたが、$_POST だけが print_r に出力されます。内破はエラーを生成します。Explode は、1 つのアイテムだけで配列を作成します。

これが print_r($_POST['opc']); です。

Array ( [\'0\'] => dog [\'1\'] => cat [\'2\'] => mouse [\'3\'] => chicken [\'4\'] => runner [\'5\'] => )

これを処理するにはどうすればよいですか?

フォーム コード (最初の 2 つのレコード):

<tr><form action="editcats.php" method="post"><td align="right">Existing:</td><td align="left"><input type="text" size="12" name="ocp[0]" value="dog"><input type="hidden" name="id[0]" value="1"></tr>
<tr><td align="right"></td><td align="left"><input type="text" size="12" name="ocp[1]" value="cat"><input type="hidden" name="id[1]" value="2"><input type="submit" value="submit"></form></tr>
4

1 に答える 1

2

HTML ソース コードを確認したところ、配列変数を に渡す方法を混同しているよう$_POSTです。同じ配列に投稿したい場合でも、同じ「名前」を持つ 2 つの要素を持つべきではありません。配列変数にデータを入力する方法を修正するか、要素に別の名前を付けてください。

アトリビュートからインデックスを削除し、nameフォームを再度実行してみてください。

ヘルプについては、この関連する質問も参照してください。

<input type="text" size="12" name="ocp[]" value="cat"><input type="hidden" name="id[]" value="2"><input type="submit" value="submit"></form></tr>
于 2012-04-17T17:09:10.210 に答える