2013-09-21 70 views
1

我想發送我的表單數據以及頁碼(分頁)在一個單一的職位(),不幸的是我不能讓它工作。這是代碼,它不包含{name:data}標籤。它運行良好,但顯然分頁不起作用。任何人都知道我可以如何發送序列化表單數據以及來自變量的一些信息?發送序列化表單數據以及其他數據與jQuery post()

$(document).ready(function(){ 
      //set initial page to zero 
     var pageRequest = 0; 
     $('.datepicker').datepicker(); 

     $('#search_text').keyup(function(){ 
      $('#test_form').submit(); 
     }); 

     //assign current page number to variable and get a new page 
     $('#page-links').on('click', '.page-indv', function(){ 
      var pageRequest = $(this).attr('id'); 
     $('#test_form').submit();}); 

     //Send form data and page number, recieve JSON results 

     $('#test_form').submit(function(){ 
      $.post(
       $(this).attr('action'), 
          {pgeNmbr : pageRequest}, //works fine with this line removed 
       $(this).serialize(), 
       function(data){ 
        $('#results').html(data.html); 
        $('#page-links').html(data.page); 
       }, 
       "json" 
      ); 
      return false; 
     }); 
     $('#test_form').submit(); 
    }); 
+0

如果您已經有'click'事件 - 您可以在窗體上添加隱藏字段並在其中寫入當前分頁值。當然,這不是一個解決方案。但仍然。 –

+0

u_mulder,謝謝,這就是我的工作方式,只是好奇是否有辦法將它添加到發佈數據而不是使用隱藏字段。 –

回答

1

使用

.. 
$(this).serialize()+'&pgeNmbr='+pageRequest 
.. 

serialize()回報param=value&param=value等,所以你只需要在末尾添加pageRequest。


我意識到答案(如果它仍然不工作):在頂部更改線路

var pageRequest = $(this).attr('id'); 

pageRequest = $(this).attr('id'); 

這裏有一個範圍的問題,var pageRequest = 0;,如一個全局變量,但是通過使用var(在外部不可見),您將pageRequest指定爲點擊事件中的新本地變量 - 它是「全局」pageRequest您想要更改以便在您的submit()中使用。

+0

這允許腳本運行,但由於某種原因不會通過發送請求發送到pgeNmbr。至少我不認爲它確實如此。如果我使用隱藏表單發送信息並使用jQuery修改值,則分頁工作,所以PHP方面的工作... –

+0

然後pageRequest未設置,我假設您插入它正確。這不是一個猜測,看看序列化http://api.jquery.com/serialize/使用上面的很多來完成額外的(通常是硬編碼)params ajax調用。嘗試使'var s = $(this).serialize()+'&pgeNmbr ='+ pageRequest'並將其記錄到控制檯。 – davidkonrad

+0

@cstone,試試更新中的建議 – davidkonrad