2014-08-28 179 views
0

我在重新加載div內容時遇到了一些問題。 我有一個分爲4個步驟的表格。 在第二步中,人們可以添加項目(禮品卡或支票) 當有人添加新項目時,此項目將添加到存儲在會話中的數組中。 添加項目後,我想向客戶展示該項目,所以我想用顯示數據的PHP函數刷新/重新加載div。如何重新加載div

<div class="kosten" id="kosten"> 
       <?php 
        if($session->exists('stap2')) { 
         echo $lijst->output(); 
        } 
       ?> 
</div> 

函數exists用於檢查是否設置了會話。 函數output是用會話數據輸出html的函數。

那麼,什麼是我所試過至今: 首先我試着這樣做:

$('#kosten').load('index.php'); 

然而,這導致了我展示的index.php,但我回到第1步。我也嘗試添加一些JavaScript/jQuery來顯示步驟2中再次但是這也沒有幫助

我試圖

第二件事:

setInterval(function() { 
        $('#kosten').text(); 
       }, 3000); 

這導致顯示我一半空白頁。它不會重新加載頁面的下半部分。並且有一段時間,你也會看到div被重新加載。

我試過的第三件事是做另一篇文章到PHP。它會比echo $lijst->output()作爲回報。但這給了我一個數組而不是html

所以我想要做的是重新加載div,所以不會在點擊「添加項目」按鈕後的頁面。有沒有其他的方式來做到這一點?

在此先感謝

回答

0

我解決了我的問題,增加了另一個$ .post。在那裏,我附和所需的功能

echo $lijst->output(); 

之後,我可以使用,作爲我然後可以使用

$('.kosten').html(answer); 

這樣做可以解決我的問題的功能answer

1

jQuery有加選擇的選項,你找什麼:

$('#kosten').load('index.php #kosten'); 
+0

如果我這樣做,它也會讓我回到我試圖避免的第一步 – SuperDJ 2014-08-28 09:46:15

+0

等待,那麼服務器如何知道它應該返回第2步而不是第1步? – 2014-08-28 09:47:52

+0

因爲'output()'只會用於第二步。另外,因爲在處理所有ajax帖子的文件中,這隻會用於'step2'和'output()' – SuperDJ 2014-08-28 09:54:04

0

我不知道是什麼的index.php中包含的,但你可以嘗試添加index.php頁面的網址,而不是'index.php'。

$('#kosten').load('url of index.php'); 
+0

它應該沒關係。我相信它應該總是返回到域的index.php。除了從另一個文件夾中調用該功能時 – SuperDJ 2014-08-28 10:02:32