2013-08-05 202 views
2

我有麻煩傳遞JavaScript數組和其他變量到我的PHP控制器。我在codeigniter中這樣做。我已經指定一些值於JavaScript這樣的:如何將JavaScript變量存儲到php會話變量中?

var count = ($('#listOfProducts tr').length); 
//loop start 
var i=0; 
grid=$('#listOfProducts input[type="checkbox"]:checked').each(function(){ 
    var $row = $(this).parents('tr'); 
    var $trid =$(this).closest('tr').attr('id'); 
    rowid[i]=$trid; 
     rowfields.push({itemname: $row.find('td:eq(0)').text(), productname:$row.find('td:eq(1)').text(), productdesc: $row.find('td:eq(2)').text(), unitprice:$row.find('td:eq(3)').text(), quantity:$row.find('td:eq(5) input').val(), amount:$row.find('td:eq(6) input').val()}); 
    i++; 
}); 

我必須把它傳遞給我的控制器,所以我可以保存值到我的數據庫...任何幫助嗎?我正在考慮將此數組存儲爲會話變量,但我不知道如何考慮客戶端和服務器端問題。

+0

通過AJAX只需把它。 – Pitchinnate

回答

2

我使用CI,我發現最好的方法是將其發送直通AJAX,就像這樣:。

$('.your-element').click(function(e){ 
    var id = 1; 
    $.ajax({ 
     url: base_url()+'yourController/youFunction/'+id, 
     type: 'get', 
     dataType: 'html', 
     success: function(html) { 
      //YOUR ACTION 
     } 
    }); 

}); 

讓我們知道如果您需要mo重新規格。 NOTE: This method creates problems if you have sessions data going on as every ajax call changes the session id or doubles the time of the session_update。 爲了解決這個問題看到這個帖子:HANDLING CODEIGNITER SESSION/AJAX PROBLEMS

編輯:

對於JS的base_url()我在index.php文件中寫道的:

<script> 
function base_url(){ 
    var url = '<?= base_url() ?>'; 
    return url; 
} 
</script> 

陣列編輯

對於數組ajax-call我會用jQuery $.post()來做,如下所示:

$('.your-element').click(function(e){ 
    e.preventDefault(); 
    var demoArray = ['1', '3', '7']; 
    $.post(base_url()+'admin/test/', {array_send:demoArray}, function(result){ 
     alert(result); 
    }); 
}); 

在控制器admin/test是:

public function test(){ 
    print_r($_POST['array_send']); 
} 
+0

Sir @ Mr.Web,假設我傳遞一個數組「tablefield」,我如何獲取控制器中的值? –

+0

@ Umpong_1947676:看我的編輯。最好。 –

+0

打印的作品,但是當我嘗試將值存儲到一個變量,它失敗... –

1

其實有隻有幾個選項傳遞信息,從JavaScript(或者是瀏覽器),以PHP:

  1. 使用Ajax請求。這既可以是一個GET或POST請求(PHP變量分別爲
  2. 駐留在$_GET$_POST陣列中的使用方式:添加要發送到舊校園HTML表單,並張貼數據
  3. 魔法:把牙刷對着你的腦袋,轉身7倍和雜音一些不存在的話它可能會幫助