2013-03-29 49 views
0

我想從一個div加載ajax,但我不能。讓我們來解釋一下:試圖從一個div加載ajax getElementById

在 '使用example.php' 我有這樣的JS代碼:

<script type= "text/javascript"> 

var page=document.getElementById("table_page").value; 

$(document).ready(function() { 
    function update() { 
     $.ajax({ 
     type: 'GET', 
     url: "show_class_entrys.php?q="+page, 
     timeout: 1000, 
     success: function(data) { 
      $("#show_class_entrys_js").html(data); 
      window.setTimeout(update, 3000); 
     }, 
     }); 
    } 
    update(); 
}); 


</script> 

但使用id = 'table_page' 與阿賈克斯文件 'loaded.php' 加載輸入。文件'loaded.php'包含這個:

<?php echo " <input type='hidden' id='table_page' value='7' /> "; ?> 

這打印在我的'example.php'的某處。問題是我無法從我的js代碼中得到這個div的值。請幫幫我。

+5

在AJAX調用完成之前,元素不存在於DOM中。你需要在你的'success'回調中運行依賴'#table_page'值的任何功能。 – BenM

+1

因爲你已經使用jquery,不妨使用'$(「#table_page」).val()'而不是'getElementById' –

+0

table_page是否存在於example.php中? – Roger

回答

1

試試這個:

$(document).ready(function() { 

    var page = ''; 
    $('#divLoadedID').load('loaded.php', function() { 
     page = $("#table_page").val(); 
     update(); 
    }); 

    function update() { 
     $.ajax({ 
      type: 'GET', 
      url: "show_class_entrys.php?q=" + page, 
      timeout: 1000, 
      success: function (data) { 
       $("#show_class_entrys_js").html(data); 
       window.setTimeout(update, 3000); 
      }, 
     }); 
    } 
}); 
+0

我會嘗試一下,然後我會通知你。 – giorgos

+1

謝謝你..它完美的作品。 – giorgos

+0

很高興幫助! –

0

這是一個簡單的修復。所有你需要做的就是在你的成功函數中覆蓋page,因爲它會獲得新的價值。

$(document).ready(function() { 

    var page=$("#table_page").val(); 

    function update() { 
     $.ajax({ 
     type: 'GET', 
     url: "show_class_entrys.php?q="+page, 
     timeout: 1000, 
     success: function(data) { 
      $("#show_class_entrys_js").html(data); 
      window.setTimeout(update, 3000); 
      page=$("#table_page").val(); 
     }, 
     }); 
    } 
    update(); 
}); 

問題是page是越來越之前,DOM改變設置,Ajax調用的成功部分發生在DOM發生變化,因此可以考慮新元素後/數據