おそらく、非常に単純でばかげた質問です(私は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変数の「クリック数」は常に同じです。ポストIDをjavascript変数名「clicks」に追加するにはどうすればよいですか?
var <?php echo $post['id']; ?>-clicks = -1;
もちろん、このようには機能しませんが、管理方法がわかりません。何かアドバイス?このばかげた質問でごめんなさい...
ご協力いただきありがとうございます!
アップデート
わかりました、解決策を得ました:ブライアンは正しかったです!!!
コードを次のように変更しました:
<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];
}
今は完璧に動作しているようです、あなたの助けに感謝します!!