2014-11-02 97 views
1

我試圖得到一個函數,當一個HTML頁面加載時觸發。爲了達到這個目的,我使用body onload。在我看來,該功能沒有觸發。我在頁面的頭部包含了jQuery庫,並檢查了它們確實位於它們應該在的位置。該腳本正在調用一個php文件,每秒鐘檢查一次數據庫中的值。它應該返回一個狀態(響應)到html頁面。body onload不會觸發javascript jquery

下面是HTML代碼的onload:

<body onload="setInterval(check_search_status, 1000)" > 

在我的頁面的最下方,右側身體關閉標籤之前,我有自己定義爲一個使用JavasScript功能。正如你所看到的,我試圖通過使用會話變量將ID參數傳遞給checksearchstatus.php頁面。

<script type="text/javascript"> 
     function check_search_status(){ 
      $jQuery.ajax({ 
       type: 'POST', 
       url: 'http://internetsolutions.no/checksearchstatus.php', 
       data: { 
        id: '{$_SESSION['owner']}'; 
       }, 
       dataType: 'json', 
       success: function(response){ 
        if(response.status == 0){ 
         window.location='http://internetsolutions.no/findings.php'; 
        } 
       } 
      }); 
     } 
    </script> 
+0

'ID:「';'。 – dfsq 2014-11-02 08:59:23

+0

控制檯顯示'重定向被阻止用於CORS請求'。不知道這是什麼意思 – user2120143 2014-11-02 09:00:12

+0

爲什麼投票來執行本質上是一次性的任務?這並不是說從輪詢到輪詢都會發生什麼變化 - 數據總是相同的。 – 2014-11-02 09:01:06

回答

0

更改線路

$jQuery.ajax({ 

只是

$.ajax({ 
+0

您如何知道OP中的$ jQuery!== $? – dfsq 2014-11-02 08:57:21

+0

@dfsq我不假設。 – theliberalsurfer 2014-11-02 08:57:59

0

呼叫在$(document).ready()而不是函數。您的代碼包含語法錯誤。從那些其他人指出更改$jQuery.ajax$.ajaxid: '{$_SESSION['owner']}';id: '<?=$_SESSION["owner"]?>'

$(document).ready(function(){ 
    check_search_status(); 
}); 
function check_search_status(){ 
    $.ajax({ 
     type: 'POST', 
     url: 'http://internetsolutions.no/checksearchstatus.php', 
     data: { 
      id: '<?=$_SESSION["owner"]?>' 
     }, 
     dataType: 'json', 
     success: function(response){ 
      if(response.status == 0){ 
       window.location='http://internetsolutions.no/findings.php'; 
      } 
     } 
    }); 
} 
+0

' \t <腳本類型= 「文本/ JavaScript的」> \t \t \t \t功能check_search_status(){ \t \t \t \t \t $ 111中。AJAX({ \t \t \t \t \t \t類型: 'POST', \t \t \t \t \t \t URL: 'http://internetsolutions.no/checksearchstatus.php', \t \t \t \t \t \t數據:{ \t \t \t \t \t \t \t ID: '135' \t \t \t \t \t \t}, \t \t \t \t \t \t數據類型: 'JSON', \t \t \t \t \t \t成功:功能(響應){ \t \t \t \t \t \t \t如果(response.status == 0 ){ \t \t \t \t \t \t \t \t window.location ='http://internetsolutions.no/findings.php'; \t \t \t \t \t \t \t} \t \t \t \t \t \t} \t \t \t \t \t}); \t \t \t \t} \t \t \t \t $ 111(文檔)。就緒(函數(){ \t \t \t \t check_search_status(); \t \t \t \t}); \t \t' – user2120143 2014-11-02 15:51:05

+0

抱歉關於格式不正確,但這是代碼現在的樣子。還是行不通。在控制檯中沒有來自此腳本的錯誤消息 – user2120143 2014-11-02 15:52:19

+0

將if(response.status == 0)'更改爲'if(response.status == 1)' – MH2K9 2014-11-02 15:57:46

0

有我在這裏看到的一些問題,一邊。

  1. 您正在混合使用JS和PHP。例如:id: '{$_SESSION['owner']}';。由於PHP運行服務器端,而JS運行客戶端(在瀏覽器中),所以無法完成。您

  2. 我覺得你的onload事件應該寫成:setInterval(function() {check_search_status();}, 1000);

+0

對不起,但'id:'{$ _SESSION ['owner']}''是可能的。我們在這裏看到的是來自服務器端(PHP)腳本的片段,而不是最終提供的頁面源代碼。 – 2014-11-02 09:05:46

+0

而'setInterval(check_search_status,1000)'是有效的。一個函數可以通過名字來指定。匿名函數包裝器不是必需的。 – 2014-11-02 09:07:55

+0

@ Roamer-1888 Gotcha。很高興知道。 – Alex 2014-11-02 09:09:47