Form checkbox değerlerini almak ve pagination yoluyla onları geçmek?

5 Cevap php

Ben seçilmiş checkboxe Sitesinden ve PHP / MySQL ile yapılır Sayfalandırması cadı aracılığıyla değeri geçişte değerleri almak gerekir. Ve başka bir sayfa kullanıcı eğer diğer onay kutularını önceki seleced dizi kendi değerlerini eklemek seçin.

Ben sayfa karşılaştırmak ürün için bu gerekir. Kısacası ben checkbox değerlerini onları pagination diğer sayfalardan onay kutusunu değerler eklemek ve kullanıcının seçtiği karşılaştırdığımızda sayfasını karşılaştırmak için bu diziyi göndermek saklamak olsun.

Anybody know how to do this? Or any related examples would be appriciated?

5 Cevap

Bu durumda muhtemelen bir oturum değişkeni kullanmak, vb çerezler, oturum değişkenleri, gizli girişleri dahil olmak üzere sorgu dizesi onları geçen, veritabanına ısrarcı sayfalar arasında durumunu korumak için farklı yolları vardır.

PHP oturum See hakkında daha fazla bilgi için PHP Sessions.

Bir çözüm, bir form içinde bir defada kendi div s tüm sayfaları yüklemek olacaktır. Eğer yeni bir sayfa linke tıkladığınızda, göstermek gerekir dışındaki tüm div s gizleyebilirsiniz. Bu şekilde tüm onay kutularını daha kolay sunucu tarafı ele verme, aynı formda sunulmaktadır. Tabii ki orada nasıl ağır her sayfası ve kaç sayfa bağlıdır.

Başka bir çözüm tıklandığında ne izleme, bir oturum değişkeni tutmak olacaktır. Her seferinde birileri başka bir sayfaya gitmek için tıklar. Sunucuya onay kutularını bir listesini POST.

Sen bir tanımlama onay kutusu seçimi saklamak için javascript kullanarak bunu yapabilirdi. Burada doğru yönde gidiyor almak için bazı örnek kod.

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);

Orada bir working demo here ve bir daha kapsamlı bir açıklama here

Ne yazık ki sen çözemezseniz hiçbir gerçek engel yok. Aslında size çok basit bir görev düşünmek istemiyorsanız veya herhangi kılavuzu okumak. Sadece birisi size karmaşık sorunu için tam bir çalışma çözümü verir istiyorum.

Ben iyi değil sanırım. Bu kaynak tembel insanlar için, ancak bazı hileler ve teknolojilerin deneyim ve bilgi paylaşımı için değil.

Sizin pagination bağlantılar aslında form POST gerçekleştirebilir, sonra ur php script [] onay kutusunu okuyun ve gizli bir form elemanı güncelleştirmek veya bir oturuma değer katmak, durum bilgisi olan bir şey. böylece çapa gibi görünebilir


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