2013-03-14 90 views
0

我的主要PHP頁面是1個文本框形式。表單提交給自己並顯示從數據庫中提取的信息(machine.php?pc = workstation101)。php變量包含全局錯誤

也在這個頁面上,我有一個單獨的ping.php包括,將每60秒ping搜索到的機器。這是放在一個div和jQuery自動刷新這個外部ping.php頁面。

如果我禁用了jQuery刷新代碼(如下圖所示)...

<script> 
$(document).ready(function() { 
     $("#pinger").load("inc/ping.php"); 
     var refreshId = setInterval(function() { 
     $("#pinger").load('inc/ping.php'); 
     }, 60000); 
    $.ajaxSetup({ cache: false }); 
    }); 
</script> 

...包含文件工作正常。顯示正確的ping狀態。但是,我必須使用$ GLOBALS ['variable']來訪問父級index.php頁面中的變量。但是,當我這樣做的時候它工作正常

現在,如果我啓用刷新jQuery,我會得到大量的「注意:未定義的索引:....」錯誤。當我重新加載DIV內容時,我已經將它縮小到$ _GET ['pc']不以任何形式傳遞。

它作爲一個包括。作爲jQuery加載頁面失敗。也許我可以將包含頁面編碼到索引頁面中,並在沒有外部頁面的情況下刷新div內容?似乎無法找到可以使用該方法的代碼。

想法?

+0

你幾乎回答了你自己的問題可能會解決你的問題。你不會在你的查詢字符串中使用你的jQuery代碼傳遞'pc'。你的PHP期待着找到它。通知被拋出。 – datasage 2013-03-14 22:11:45

回答

0

包含一個PHP頁面並從瀏覽器中獲取它是兩件完全不同的事情。

當您告訴jQuery加載inc/ping.php時,就像您在另一個瀏覽器窗口中加載該頁面一樣。原始的PHP頁面已經完成,其變量不再存在。

在這種情況下,您只需構建一個URL,如/dynamic/ping.php?pc=foo並加載。

+0

好的指針,謝謝。修正了我的JS中的兩行.... $(「#pinger」)。load(「inc/ping.php?pc = <?php echo $ machinename?>」); – vashavoc 2013-03-14 23:26:48

0

我不完全確定你想要達到什麼,我不能評論問,但jQuery不正確。首先我假設你想將你的文本框的值傳遞給PHP後端?

試試這個腳本:

<script> 
    function ping(){ 
     $.ajax("inc/ping.php?pc="+encodeURIComponent($("#your_textbox_id").val()),{}) 
      .success(function(data)){ 
       // Your php return values are here 
      }).fail(function(error){ 
       // alert('somthing went wrong'); 
      }) 
     }); 
     window.setTimeout("ping()", 60000); 
    } 

    $(document).ready(function(){ 
     ping(); 
    }); 
</script> 

請注意,這是未經測試並可能有語法錯誤......但