• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:一括で資料請求する方法)

一括で資料請求する方法についてのアドバイス

このQ&Aのポイント
  • 一括で資料請求する方法についてアドバイスをお願いします。保険の一括資料請求システムで、ページングがある場合に前のページでチェックされていたチェックボックスの値を引き継いで渡す方法が知りたいです。
  • 一括で資料請求する方法についてアドバイスをお願いします。保険の一覧表示ページでチェックボックスを選択し、資料請求ボタンをクリックすると、チェックされている保険の資料を一括で請求できます。ページングがある場合、チェックボックスの状態を維持する方法を教えてください。
  • 一括で資料請求する方法についてのアドバイスをお願いします。保険の一覧表示ページでチェックボックスを選択し、資料請求ボタンをクリックすると、チェックされている保険の資料を一括で請求できます。ページングがある場合、チェックボックスの状態を引き継いで遷移する方法を教えてください。

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

  • ベストアンサー
回答No.1

私なりのノウハウです。 1.まず、ページ切り替えは POST メソッドでリクエストするようにします。 2.チェックボックスのチェックの有無は、$_POST の値を $_SESSION に保存する。 3.チェックボックスの echo 時に SESSION 変数に保存されている場合は、checked="checked" を echo する。 以下がサンプルのソースです。 かなり簡略して書いています。なおかつ未検証です。構文エラーがあるかも知れません。 実装する場合は、不正なリクエストはエラーを出すなり 無視する処理をしっかり入れてください。 // JavaScript 部分 function action(i){ document.forms.form1.page = i; document.forms.form1.submit(); } // フォーム部分 <from name="form1" method="post"> <input type="hidden" name="page" /> <ul> <?php for ($i = 0; i < 10; i ++){ ?> <li> <label> <input type="checkbox" name="checkbox[<?php echo($i); ?>]" value="1" <?if(isset($_SESSION[$i])){echo('checked="checked"');}?> /> チェックボックス<?php echo(($i + 1).'個目') ?> </label> </li> <?php } ?> </ul> </form> // ページ切り替え部分 <a href="javascript:action(2)">2ページ目</a> <a href="javascript:action(3)">3ページ目</a> <a href="javascript:action(4)">4ページ目</a> <a href="javascript:action(5)">5ページ目</a> // POST値をSESSION変数に保存する部分 if(isset($_POST)){ while(true){ if(count($_POST['checkbox']) == 0){ break; } foreach($_POST['checkbox'] as $key => $value){ if($value != 1) continue; $_SESSION[$key] = true; } break; } }

dcx147
質問者

お礼

お返事ありがとうございます! おかげ様でなんとか実装できそうです。ここから試行錯誤を繰り返してみたいと思います。