2010-12-15 4 views
0

これまでのところ、データベースシステム内のすべてのユーザーを表示するページ番号が付けられています。各ページには30人のユーザーが表示され、各ユーザーの横にチェックボックスがあり、ユーザーがこれらのユーザーを選択および選択解除し、これらの選択を伝播する方法が必要です。したがって、ユーザーが2ページ目から1ページ目に戻ると、 1ページ目のユーザーは引き続きチェックされます。

この情報を記録する方法も必要です。ユーザーがすべてのページを見て、送信フォームをクリックすると、チェックされたすべてのユーザー情報を処理できます。私はjavascriptを使って情報とPHPセッションを記録することを考えていますが、私が試しているやり方では、ユーザーがチェックボックスをクリックすると、それはチェックされません。

誰でもこれを行うためのより良い方法がありますか、この問題をどのように解決できるかをご覧ください。

ありがとうございました。あなたがGETにフォームのメソッドを変更し、それが形とページ番号に渡されるすべてのパラメータが含まれているので、ページネーションのリンクをしないのはなぜ

<script type="text/javascript"> 
function log_export($str) { 
document.check.data.value = $str; 
document.check.submit(); 
} 
</script> 

<?php 
if(isset($_POST['data'])) { 
    echo $_POST['data']; 
} 
?> 

<form name="check" method = "post" action = ""> 
<input type="hidden" name="data"> 
    <input type="checkbox" name="A" onclick="log_export('1')" /> 
    <input type="checkbox" name="B" onclick="log_export('2')" /> 
    <input type="checkbox" name="C" onclick="log_export('3')" /> 
</form> 

答えて

0

。投稿されたものに対してURLに渡されたパラメータを使って、このケースを処理するのがより簡単になると思います。

for ($i =0; $i < $max_page; $i++){ 
echo "{$_SERVER['REQUEST_URI']}?$_SERVER['QUERY_STRING']&p={$i}"; 

をし、あなただけの$_GETの代わり$_POSTを使用するようにバックエンドを変更する必要があります。

次のようなこれらのリンクを作成することができます。

1

これを行う方法はほとんどありませんが、javascriptを使用しないでください。 $ _SESSIONで配列を使用して、リストをページ間で保持することができます。

<form name="check" method = "post" action = ""> 
    <input type="checkbox" name="person[A]" /> 
</form> 

(注:フォーム要素は人[A]、人物[B] ...などと命名されているので、彼らは、PHPの配列としてアクセスし、あなたの人生を容易にすることができます)

次に、PHPで、あなたは...セッションで

$_SESSION['saved_list'] = $_REQUEST['person']; 

セッション変数saved_listはその中のすべてにチェックボックスが配列の人物が含まれています。この方法は、これを保存することができます。あなたは(私が正しく私のマージ機能を覚えていた場合)、これはそれらを維持する必要があります前に、そう... ...

$_REQUEST['person'] = array_merge($_SESSION['saved_list'], $_REQUEST['person']); 

を追加、しかし配列を毎回上書きしないように注意する必要があります。

また、htmlを使用して既にチェックされているチェックボックスを保存することもできます。ページ2はページ1の結果を受け取ると、ページ2のフォームの最後に隠し要素として印刷することができます。この方法でページ間に存在することができますが、ページ名を30にすると扱いにくくなります。

私はPHPのセッション配列に格納することをお勧めします。これは本当にJavascriptを使用する必要はありません。問題を複雑にするだけです。

関連する問題