2011-09-30 57 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