2014-09-24 90 views
1

在我的div中,我通過PHP協議顯示數據庫中的數據,但是,當我切換到另一個div並返回到顯示數據庫的div時,我不再看到數據,它只是一張空白桌子。所以我想我應該在我的javascript中添加重載功能,是嗎?幫我擺脫這種請使用onclick函數刷新div?

這裏是我的代碼

<div id="container1"> 

    <table width="313" border="1"> 
     <tr> 
     <td width="103" height="62"><div align="center">Latitude</div></td> 
     <td width="194" class="style5"> <div id="lat" align="center" class="style6"> 
      <?php 
      const DB_HOST1 = 'localhost'; 
    const DB_USER1 = 'root'; 
    const DB_PASS1 = ''; 
    const DB_NAME1 = 'gmap'; 
    $mysqli1 = new mysqli(DB_HOST1, DB_USER1,DB_PASS1 ,DB_NAME1); 
if ($mysqli1->connect_errno) { 
     echo "<p>MySQL error no {$mysqli1->connect_errno} : {$mysqli1->connect_error}</p>"; 
     exit(); 
    } 
    $query1 = "SELECT * FROM gmaptracker1 ORDER BY id DESC LIMIT 1"; 
$result1 = $mysqli1->query($query1); 
if (!$result1) { 
echo "Invalid query: {$mysqli1->query($query1)}:{$mysqli1->query($query1)}"; 
} 
      while ($row1 = @mysqli_fetch_assoc($result1)){echo $row1['lat'] . ',N '; ?> 
     </div></td> 
     </tr> 
     <tr> 
     <td height="60"><div align="center">Longtitude</div></td> 
     <td> <div align="center" class="style6"> 
      <?php echo $row1['lng'] . ',E ';} ?></div></td> 
     </tr> 

    </table> 
</div> 
<div id="container2">Container #2<p>Whole bunch of text 2</div> 
</div> 

這裏是我的javascript

function showDiv(idInfo) { 
    var sel = document.getElementById('block_left_panel2').getElementsByTagName('div'); 
    for (var i=0; i<sel.length; i++) { sel[i].style.display = 'none'; } 
    document.getElementById('container'+idInfo).style.display = 'block'; 
    return false; 

} 

回答

2

您可以使用jQuery這樣的:

$(document).ready(function(){ 
$("#your_button_id").click(function(){ 
    $("#your_div_id").load("url to your php file"); 
}); 
}); 
+0

謝謝,它的工作:) – JackABC 2014-09-24 02:56:44

+0

yo're welcome pal – 2014-09-24 03:12:56

0

的問題是在這裏

var sel = document.getElementById('block_left_panel2').getElementsByTagName('div'); 

這段代碼也越來越所有的div,甚至是容器內的div,然後都會隱藏起來。但是你只展示了2個容器,而不是它的兒童。

解決方案是爲您的#container1#container2 divs添加class="div-containers"。在JavaScript,請更改上面的一行:

var sel = document.getElementsByClassName('div-containers'); 

的邏輯很簡單

躲使用一個類你的主要的div(#container1,#container2的),並顯示出你想要的(1或2)使用id

+0

,我應該在哪裏,我的html代碼添加class = 「DIV的容器」?無論如何,我已經將容器的內容移到了新的php文件中,並將php文件包含在容器中,並使用Hendry給我的Jquery,並且它工作正常。謝謝 – JackABC 2014-09-24 02:55:27

+0

嗨,我仍然得到一些關於這個問題,當我添加一些div div容器,我無法顯示這些股利當我切換div。你能給我更清楚的答案,關於class =「div-containers」嗎?我是一個新手。提前感謝 – JackABC 2014-09-24 03:23:47

+0

您應該將此類添加到您的''#container1''和''#container2'' divs。我會更新我的答案。 – 2014-09-24 16:27:49