0

チェックボックスを選択していて、現在のページ番号をインデックスとして連想配列に保存したいのです$_GET['page_no']が、1つの値しか入力されません。なぜ他の値が入力されないのですか?

$pageno = $_GET['page_no']; //Say page no is 1
$_SESSION['selected_vals'] = array();
foreach($_POST['record_num'] as $throw_rec_nums) {
    $_SESSION['selected_vals'][$pageno] = $throw_rec_nums;
}

私が期待すること

$_SESSOION['selected_val'] (
   [1] => 24
   [1] => 46
   [1] => 56
)

しかし、3つのチェックボックスが選択されていても24しか得られません

注:$ _GET['page_no']は配列として返されます

4

3 に答える 3

3

$pagenoインクリメントしていません。配列に複数の値を追加するには、ループ内で値をインクリメントする必要があります。

解決策は次のようになります。

$_SESSION['selected_vals'][$pageno][] = $throw_rec_nums;

そうすれば、すべてのレコード番号が指定されたページ番号で配列に保存されます。

于 2013-02-15T17:09:28.393 に答える
2

foreachの各ループで$_SESSION['selected_vals'] [$ pageno]値を置き換えているため、1つの値のみが入力されます。

インデックスを作成するためのカウンターを作成してみてください

それはオプションです

$_SESSION['selected_vals'] = array();
$_SESSION['selected_vals'][$pageno] = array();
foreach($_POST['record_num'] as $throw_rec_nums) {
    $_SESSION['selected_vals'][$pageno][] = $throw_rec_nums;
}
于 2013-02-15T17:10:20.350 に答える
0

配列を配列インデックスとして使用することはできません。たとえばnext()を使用して、$pagenoも反復処理する必要があります。

$array[current($pageno)] = ...;
next($pageno);

これは、$ pagenoが実際に配列であり、十分な要素が含まれていることを確認した場合にのみ機能することに注意してください。

于 2013-02-15T17:08:21.150 に答える