• ベストアンサー

配列の中のデータの表示(1件分ずつ)

いつもお世話になっております。 教えていただいた方のおかげで少しずつ出来上がりつつありますm(__)m またお力をお貸しいただければ嬉しいです。。 POST で取得された配列があります。 [i][handle][sex][body] ↓ (例) [0][][][][]→データなし [1][たくみ][男][晴れが好き] [2][あゆみ][女][雪が好き] [3][みゆ][女][曇りが嫌い] : この配列を、一番目の人($が1)から表示させたいと思っていのですが・・・ for ($i = 1; $i <= count ($handle); $i++) { print $i . "人目の名前:" . $_POST['handle'][$i] . "<br>\n"; print $i . "人目の性別:" . $_POST['sex'][$i] . "<br>\n"; print $i . "人目のPR:" . $_POST['body'][$i] . "<br>\n"; print "<br>\n"; } にすると、同じページに3人分のデータが表示されてしまいます。 そうではなく、1ページ目には1番目の人、2ページ目には2番目の人の表示という風にはできないのでしょうか? 教えてくださいm(_)m

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

1ページ目から2ページ目にどうやって移る予定でしょうか? ページャーみたいなものをつける? 基本的にはhidden属性のinputタグでパラメータわたしして 必要なところだけ表示するようなフローになるでしょう。 もしjavascriptまで視野にいれているのであれば、 スクリプトで、ページの変遷なしに必要なものを見せることも可能です。

noname#37436
質問者

お礼

さっそくのお返事ありがとうございますm(__)m javascriptは視野には入れていません。。 基本的には全部、 for ($i = 1; $i <= count ($handle); $i++) { print "<input type=\"hidden\" name=\"handle[$i]\" value=\"" . $_POST['handle'][$i] . "\">\n"; print "<input type=\"hidden\" name=\"sex[$i]\" value=\"" . $_POST['sex'][$i] . "\">\n"; print "<input type=\"hidden\" name=\"body[$i]\" value=\"" . $_POST['body'][$i] . "\">\n"; } で配列を持って回っています。 >基本的にはhidden属性のinputタグでパラメータわたしして 必要なところだけ表示するようなフローになるでしょう。 という事は、$i = 1 から?まわしていくという事でしょうか・・・? foreach を使うのかかなぁとか色々考えていたのですが。。 違うんでしょうか・・・><

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • liq
  • ベストアンサー率38% (228/595)
回答No.3

訂正です。 あとで考えてみたのですが、データを常にPOSTで渡し続けるのなら、何ページ目を表示するのかという数字もPOSTで渡すべきでした。送信ボタンを次ページへの移動ボタンとしたり、ページの数だけ作って移動するページを選ばせる等できると思います。

すると、全ての回答が全文表示されます。
  • liq
  • ベストアンサー率38% (228/595)
回答No.2

何ページ目(何人目の人)を表示したいかをurlにつけて渡してGETで取得するのはどうでしょうか。値が無い場合は$i=1とします。下記のような感じで次ページへのリンクをつけます。全他ページへのリンクリストを生成することもできると思います。 $nextpage = $i + 1; print("<a href='filename.php?i=".$nextpage."'>次ページ</a><br>\n");

すると、全ての回答が全文表示されます。

関連するQ&A