2011-07-02 53 views
0
新的一頁

我有問題想請求新的頁面(S)從笨使用JQuery阿賈克斯在新的空白頁面打開它,並打開它們申請新的頁面,Ajax和在

以下是目前的代碼是工作示例場景,

1)用戶選擇客戶收到複選框

<input type='checkbox' class='customer_id' value='<?php echo $entry->customer_id;?>'> 

2)投票閱讀客戶(S)的id將這些數據發送給CodeIgniter。一旦返回數據接收,火回調函數來顯示它們的目標股利

var data; 
var counter = 1; 
$(.customer_id:checked).each(function(){ 
    data['customer_' + counter] = $(this).val(); 
})  
$.post('finance/getReceipt', data, function(){ 
    $('#some_target_div').html(data); 
} 

3)笨從數據庫取回客戶數據和生成頁面

function getReceipt(){ 
    $counter = 1; 
    while ($this->input->post('customer_' + $counter)){ 
     $where['customer_id'] = $this->input->post('customer_' + $counter); 
     $data += $this->getCustomerReciept($where); 
    } 
    $this->load->page('finance/receipt', $data); 
} 

但現在我需要把這段代碼轉換,使它打開一個帶有打印按鈕的新空白頁

這樣做的目的是因爲我想生成一個格式化的收據並在打印按鈕的新空白頁中顯示。我知道有幾個插件可以打印div,但這是我客戶的請求。所以,這對我來說不是一個解決方案。

任何建議或意見將是偉大的。預先感謝。

回答

2

我認爲最簡單的方法是創建一個附配form將數據上傳到一個新的頁面,而不是使用$.post所以,這將是代碼:

var data; 
var counter = 1; 
$(.customer_id:checked).each(function(){ 
    data['customer_' + counter] = $(this).val(); 
}); 
$('<form action="finance/getReceipt" method="POST" target="_blank" style="display:none">' + 
'<input type="hidden" name="data1" value="value-data1" />' 
).appendTo("body").submit().remove(); 

只要改變你的data1參數去了你想要的一個,或者如果你想要添加更多。 就是這樣。神奇的是在表格中使用_blank目標。

希望這會有所幫助。乾杯

PS:另一種方式是創建一個新窗口,並使用JavaScript爲其分配內容。

+0

非常感謝!這是做這件事很有趣的方法。我很感興趣**分配它的內容與你提到的JavaScript **。你能告訴我怎麼樣? =) –

+0

不客氣。你可以投我的答案嗎? –

+0

還不能投票。我需要4個以上的代表=] –