0

当我单击带有选择复选框的下一页链接时,我有一个包含作业详细信息列表和每个作业复选框的表格,以便我应该获取带有复选框值的查询字符串和链接 url 查询字符串

<input type="checkbox" class="checkJobToSend" name="checkJOb" value="<TMPL_VAR NAME=job_id>"
    <input type="checkbox" class="checkJobToSend" name="checkJOb" value="<TMPL_VAR NAME=job_id>"
    <input type="checkbox" class="checkJobToSend" name="checkJOb" value="<TMPL_VAR NAME=job_id>"
    <input type="checkbox" class="checkJobToSend" name="checkJOb" value="<TMPL_VAR NAME=job_id>"
    <input type="checkbox" class="checkJobToSend" name="checkJOb" value="<TMPL_VAR NAME=job_id>"


    <a href ='index.cgi?reqpage=$prev_page&job_category_id=$jobCategory' class='paginateAdmin' id='govtPaginate'>prevPage</a>


    function getJobsChecked(){ 
            var arr = [];
            var i= 0;
            $('.checkJobToSend:checked').each(function(){
                 arr[i++] = $(this).val();
            });   

            return arr;

      }

          $(document).ready(function() {

        $(document).on('click','.paginateAdmin',
            function(e){
              e.preventDefault();      
             var arr = getJobsChecked();

              var post = $(this).attr("href");
              var array = post.split('?');
          var id=$(this).attr('id');




    $.post(
        'job.cgi',
        array[1],
        function(data,status){

           switch(id)
            {
                case "nonItPaginate":

                     $('#nonit').html(data);

                    break;
                case "ItPaginate":

                         $('#it').html(data);
                        break;
                case "govtPaginate":

                     $('#govt').html(data);
                    break;
            default:

    }    

        }
    );

    });
     });    

我如何用数组 [1] 和带有复选框值的 arr 形成一个查询字符串,例如

reqpage=2&job_category_id=2&checkJob=1&checkJob=2&checkJob=3
4

2 回答 2

0

不能有多个同名参数,只能有一个参数checkJob。所以你可以这样做:

reqpage=2&job_category_id=2&checkJob=1,2,3

可以这样实现:

// get checked values
var checked = $('input[type="checkbox"].checkJobToSend:checked');    
var checkedValues = [];
checked.each(function(i) {

    // add checked values to our temporary list
     checkedValues.push(checked[i].value);        
});

// create query param
var queryParam = 'reqpage=2&job_category_id=2&checkJob=' + checkedValues.join(',');    

请参阅工作示例:http: //jsfiddle.net/amyamy86/GsSqc/

在您的服务器端代码上,它必须解释checkJob=1,2,3.

// in PHP
$jobs = explode(",", $_GET["checkJob"]);
echo $jobs[0];    // outputs value: 1
echo $jobs[1];    // outputs value: 2
echo $jobs[2];    // outputs value: 3

您可以阅读有关使用的以下功能的更多信息:

于 2013-03-29T16:42:16.507 回答
0

这将创建您的查询字符串并将其添加到哈希中(哈希部分在 jsFiddle 上不起作用,或者至少您不会在 URL 中看到它发生变化):

Javascript

function getJobsChecked(){ 
            var arr = [];
            var i= 0;
            $('.checkJobToSend:checked').each(function(){
                 arr[i++] = $(this).val();
            });   
      return arr;
      }

$("#btn").on("click",function(){
    var arr = getJobsChecked();
    var qString = "reqpage=2&job_category_id=2";
    for(var i = 0; i<arr.length;i++)
    {
        qString+="&checkJob=" + arr[i];
    }
    location.hash=qString;
});

HTML

<input type="checkbox" class="checkJobToSend" name="checkJOb" value="1" />1
<input type="checkbox" class="checkJobToSend" name="checkJOb" value="4" />2
<input type="checkbox" class="checkJobToSend" name="checkJOb" value="7" />3
<input type="checkbox" class="checkJobToSend" name="checkJOb" value="12" />4
<input type="checkbox" class="checkJobToSend" name="checkJOb" value="5" />5
<input type="button" id="btn" value="Do It" />

jsFiddle:http: //jsfiddle.net/Zxhzq/

于 2013-03-29T16:45:38.213 回答