可能是一个简单而愚蠢的问题(我对 javascript 完全陌生):
我有这段代码可以通过单击“下一步”或“返回”链接来加载新帖子。clicks 变量用于在 sql-limit-statement 中向上和向下滚动(使用 swapContent 函数),意味着您通过单击链接在数据库中向后或向前移动。它工作简单而完美:
<script type="text/javascript">
var clicks = -1;
function increase()
{
clicks++;
return false;
}
function decrease()
{
clicks--;
return false;
}
</script>
<div id="<?php echo $post['id'].'-multipost'; ?>">
<?php include('views/posts/_postmultipost.php'); ?>
</div>
<div id="<?php echo $post['id']; ?>-next" class="rightbutton" style="display:block;">
<a href="#" onmousedown="increase(); javascript:swapContent('next', clicks, '<?php echo $post['id']; ?>', '<?php echo $post['title']; ?>', '<?php echo $_SESSION['user']['id']; ?>');">next</a>
</div>
<div id="<?php echo $post['id']; ?>-back" class="leftbutton" style="display:none;">
<a href="#" onmousedown="decrease(); javascript:swapContent('back', clicks, '<?php echo $post['id']; ?>', '<?php echo $post['title']; ?>', '<?php echo $_SESSION['user']['id']; ?>');">back</a>
</div>
唯一的问题:如您所见,我有几个帖子(帖子 ID)。但是javascript var“clicks”总是一样的。如何将 post-id 添加到 javascript 变量名称“clicks”中,嗯,是这样的:
var <?php echo $post['id']; ?>-clicks = -1;
当然它不是这样工作的,但我不知道如何管理它。有什么建议吗?对不起这个愚蠢的问题......
谢谢你的帮助!
更新
好的,找到解决方案:Bryan 是对的!!!
将代码更改为:
<script type="text/javascript">
var clicks = {};
clicks['<?php echo $post['id']; ?>'] = -1;
function increase()
{
clicks['<?php echo $post['id']; ?>']++;
return false;
}
</script>
html 中的 javascript 保持原样:
<a href="#" onmousedown="increase(); swapContent('next', clicks, '<?php echo $post['id']; ?>', '<?php echo $post['title']; ?>', '<?php echo $_SESSION['user']['id']; ?>');">></a>
Clicks 现在是一个对象,将在 swapContent-Function 中输出以下内容:
count: Array
(
[80] => 0
)
在 php 中,您将访问这样的值:
foreach($count as $key=>$value) { $count = $value }
在 javascript 中,它的工作方式似乎有点不同:
for(x in clicks)
{
var clicks = clicks[x];
}
现在似乎可以正常工作了,谢谢您的帮助!!