2009-05-19 13 views
0

いくつかの選択されたチェックボックスから値を取得し、それらの値をphp/mysqlのページネーションに渡す必要があります。別のページで他のチェックボックスを選択した場合は、前に選択した配列にその値を追加する必要があります。フォームのチェックボックスの値を取得し、ページ区切りに渡しますか?

私はこの商品の比較ページが必要です。要するに私が行う必要があります。

  • チェックボックスが
  • 値を取得
  • それらを格納ページネーション
  • 内の他のページからチェックボックスの値が含まれており、ユーザーがページを比較するために、その配列を送る「比較」を選択した場合。

誰でもこの方法を知っていますか?関連する例は分かりますか?

+0

は –

答えて

0

Cookie、セッション変数、隠し入力、クエリー文字列での継承、データベースへの永続化などのさまざまな方法でページ間で状態を維持できます。この場合はおそらくセッション変数を使用します。

PHPセッションの詳細については、PHP Sessionsを参照してください。

+0

はい、私はそれを知っているが...例えば、ページがwnglishではありませんが、あなたが問題を理解することができますがあります。しかし私は、私の場合、jsまたはajaxを使ってcheckboxから値を取得する方法を知っています。しかし、問題はその配列を保存する方法です私はセッションvarに取得し、他の値をページングから追加します。すべて1ページで完了しました。 –

+0

そしてここでは、自分のサイトへのリンクで、リンクがフォーマットされる方法: http://www.forinexgroup.com/pretragaPrikaz.php?offerType=1&offerState=2&offerRegion=0&offerDest=61&offerService=3&offerMinCat=8&offerMaxCat=8&offerFromTheSea=0&offerNights= 0&offerTransport = 1&offerPrice = 0&offerNumAdults = 0&date1 = 28-06-2009&date2 = 31-07-2009 ページの末尾にページ分割のリンクが表示されます。 リンクをクリックしてください。 –

-1

あなたのページネーションリンクは実際にフォームPOSTを実行してから、ur phpスクリプトのチェックボックス[]を読んで隠れたフォーム要素を更新するか、値をセッションに追加します。ので、あなたのアンカーは

 

<a href="#" onclick="document.myform.submit()">next</a> 

+0

-1完全に優れた入力タイプ= "submit"が存在する(そしてスタイル指定可能な)ときに、ページの上部へのリンクに劣化するJavaScript依存フォーム送信メソッドを使用する場合は – Quentin

+0

これは意味をなさない。フォーム提出を実行するにはjavascriptを使用するのが完全に受け入れられます。投稿ボタンはリンクのように表示することはできません。何かが見つからない限り... – simon622

+0

はい、そのボタンは、ユーザーが比較表示で表示したいすべてのチェックボックスを選択した場合にのみクリックされます。 –

0

一つの解決策のようになりますフォームの内側に自分のdiv秒に一度のすべてのページをロードすることです。新しいページリンクをクリックすると、表示する必要があるもの以外のすべてのdivが非表示になります。そうすれば、すべてのチェックボックスが同じ形式で提出され、サーバー側の処理が容易になります。もちろん、個々のページの重さやページの数によって異なります。

もう1つの解決策は、セッション変数を保持し、クリックされたものを追跡することです。誰かがクリックして別のページに行くたびに。チェックボックスのリストをサーバーにPOSTします。

0

javascriptを使用して、チェックボックスの選択内容をクッキーに保存することができます。正しい方向に進むためのサンプルコードがあります。

var aa_checkbox; 

function init_checkbox(){ 
    //setup blank cb cookie 
    if(!Cookie.read('cb')){ 
    Cookie.write('cb', JSON.encode({})); 
    } 

    //setup "associative array" to match what is currently in the cookie 
    aa_checkbox = JSON.decode(Cookie.read('cb')); 


    //set up each checkbox with class="remember_cb" 
    $$('input.remember_cb').each(function(el){ 

    //mark checked if it is in the cookie 
    if(aa_checkbox[el.name]){ 
     el.checked = 'checked' 
    } 

    //setup onclick event to put checkbox status in the 
    el.addEvent('click', function(){ 
     if(el.checked){ 
     aa_checkbox[el.name] = 1; 
     }else{ 
     delete(aa_checkbox[el.name]); 
     } 
    }) 
    }) 

    //save aa_checkbox back into cookie upon leaving a page 
    window.onbeforeunload = function(){Cookie.write('cb', JSON.encode(aa_checkbox));}; 

    setup_form(); 

    return true; 
} 

function setup_form(){ 
    //set up form so that it adds the inputs upon submit. 
    $$('form.remember_cb_form').each(function(form){ 
    form.addEvent('submit', function(ev){ 
     //clean up previously inserted inputs 
     var aa_hidden_insert = $$('input.hidden_insert'); 
     $each(aa_hidden_insert, function(el){ 
     el.parentNode.removeChild(el); 
     }) 

     var el_form = this; 

     //insert hidden elements representing the values stored in aa_checkbox 
     $each(aa_checkbox, function(i_value, s_name){ 
     if(i_value){ 
      var el_input = document.createElement('input'); 
      el_input.type = 'hidden'; 
      el_input.value = i_value; 
      el_input.name = s_name; 
      el_input.setAttribute('class', 'hidden_insert'); 
      el_form.appendChild(el_input); 
     } 
     }); 
    }); 
    }); 
} 

window.addEvent('domready', init_checkbox); 

working demo here、より完全な説明here

関連する問題