回答編集履歴
2
調整
test
CHANGED
@@ -17,3 +17,68 @@
|
|
17
17
|
<input type="submit" >
|
18
18
|
</form>
|
19
19
|
```
|
20
|
+
|
21
|
+
# 参考
|
22
|
+
便宜的にgoodをセッションに保持しておきます。実際にはDBで管理してください
|
23
|
+
```php
|
24
|
+
<?PHP
|
25
|
+
session_start();
|
26
|
+
if(filter_input(INPUT_POST,"reset")){
|
27
|
+
session_destroy();
|
28
|
+
}
|
29
|
+
if(filter_input(INPUT_GET,"load")){
|
30
|
+
print json_encode($_SESSION["ids"]??[]);
|
31
|
+
exit;
|
32
|
+
}
|
33
|
+
if($id=filter_input(INPUT_GET,"good")){
|
34
|
+
$ids=$_SESSION["ids"]??[];
|
35
|
+
$ids[$id]=($ids[$id]??0)+1;
|
36
|
+
$_SESSION["ids"]=$ids;
|
37
|
+
print json_encode(["id"=>$id,"count"=>$ids[$id]]);
|
38
|
+
exit;
|
39
|
+
}
|
40
|
+
|
41
|
+
if($_POST){
|
42
|
+
$_SESSION["hoge"]=$_POST["hoge"]??null;
|
43
|
+
header("Location:{$_SERVER["SCRIPT_NAME"]}");
|
44
|
+
exit;
|
45
|
+
}else{
|
46
|
+
print_r($_SESSION);
|
47
|
+
unset($_SESSION["hoge"]);
|
48
|
+
}
|
49
|
+
?>
|
50
|
+
<script>
|
51
|
+
window.addEventListener('DOMContentLoaded', ()=>{
|
52
|
+
fetch(`?load=1`).then(res=>res.json()).then(res=>{
|
53
|
+
Object.entries(res).forEach(data=>Object.assign(document.querySelector(`[data-good="${data[0]}"] span`)??{},{textContent:data[1]}));
|
54
|
+
});
|
55
|
+
});
|
56
|
+
document.addEventListener('click',({target})=>{
|
57
|
+
if(target.matches('[type=button]') && target.closest('[data-good]')){
|
58
|
+
const usp= new URLSearchParams();
|
59
|
+
usp.append("good",target.closest('[data-good]').dataset.good);
|
60
|
+
fetch(`?${usp}`).then(res=>res.json()).then(data=>{
|
61
|
+
document.querySelector(`[data-good="${data.id}"] span`).textContent=data.count;
|
62
|
+
});
|
63
|
+
}
|
64
|
+
});
|
65
|
+
</script>
|
66
|
+
<form method="post">
|
67
|
+
<input name="hoge" value="123">
|
68
|
+
<input type="submit" >
|
69
|
+
<input type="submit" name="reset" value="reset" >
|
70
|
+
</form>
|
71
|
+
|
72
|
+
<div data-good="1">
|
73
|
+
<span></span>
|
74
|
+
<input type="button" value="いいね">
|
75
|
+
</div>
|
76
|
+
<div data-good="2">
|
77
|
+
<span></span>
|
78
|
+
<input type="button" value="いいね">
|
79
|
+
</div>
|
80
|
+
<div data-good="3">
|
81
|
+
<span></span>
|
82
|
+
<input type="button" value="いいね">
|
83
|
+
</div>
|
84
|
+
```
|
1
typo
test
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
自ページであってもセッションを使って遷移し完了状態にします
|
2
2
|
```PHP
|
3
3
|
<?PHP
|
4
4
|
session_start();
|