2011-09-30 81 views
1

我試圖讓我的PHP代碼在執行時更新我的​​HTML部分,並且我不確定如何在不依賴JavaScript和隱藏div的情況下如何執行此操作。
它以一種方式工作,當用戶點擊「打勾」或「交叉」時,它更新數據庫並隱藏div,同時顯示另一個div。該數據庫在頁面加載時被查詢,並且投票欄被加載當前的總剔號和十字。然後在這些欄上設置%寬度,具體取決於每邊有多少票。
我目前有:使用PHP更改頁面方面

<div id="voting"> 
<a href="#" onClick="updatelikes();"> 
<img src="/images/tick.png" width="250px" /> 
</a> 
<a href="#" onClick="updatedislikes();"> 
<img src="/images/cross.png" width="250px" /> 
</a> 
</div> 
<div id="votingoff" style="display:none;"> 
<img src="/images/tick.png" width="250px" /> 
<img src="/images/cross.png" width="250px" /> 
</div> 

function updatelikes() { 
    $.get("updatelikes.php"); 
    voting = document.getElementById('voting'); 
    voting.style.display="none"; 
    votingoff = document.getElementById('votingoff'); 
    votingoff.style.display=""; 
    return false; 
} 
function updatedislikes() { 
    $.get("updatedislikes.php"); 
    voting = document.getElementById('voting'); 
    voting.style.display="none"; 
    votingoff = document.getElementById('votingoff'); 
    votingoff.style.display=""; 
    return false; 
} 

這工作,因爲它消除了一個從顯示器,並顯示出另一個。但是,我覺得這段代碼有點笨拙,我想讓「投票欄」改變寬度並更新值。由於HTML代碼是在頁面加載時由PHP腳本生成的,因此我不知道如何在「updatelikes.php」或「updatedislikes.php」加載時更新它,因爲我覺得我將不得不擁有另一個div隱藏,然後添加到它,然後顯示它,並隱藏其他。我認爲這可能是笨重的,甚至在一些用戶計算機上可能會很慢。
任何意見都非常感謝,因爲我現在完全失去了!

回答

3

我看你已經在使用JQuery來訪問「updatelikes.php」和「updatedislikes.php」。您可以輕鬆擁有一個值從PHP頁面返回到您的JavaScript函數:

$.get('updatedislike.php', function (response) { 
    //Logic in here 
}); 

所以喜歡/不喜歡,你可以從數據庫中獲得的總票數,並返回到你的JavaScript函數,然後「響應「參數將有你從你的PHP函數返回的任何內容。值返回後,您可以簡單地重新調用任何您在頁面加載時調用的內容(以防您首次加載頁面時返回/完全執行您的操作)。

Here你可以找到如何從你的PHP文件返回值到你的jQuery/JavaScript函數。

祝你好運!

Hanlet