忍者ブログ

からすまる日誌

20200217pm01 data属性といいね

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

20200217pm01 data属性といいね

data属性
プログラマが自由に名付けられる唯一の属性
 
<tag data-hoge="value">
とすると、
jQuery->data()
で引き出せる
 

またエラーだな
 <span data-t_id="<?php echo $row["t_id"]; ?>">いいね<img src="img/heart_small.png">
 
ここのspan data-t_idがt.idにミススぺっていた。それでconsole.log(t_id);をしたのでundefined(みつからないー)がたくさん出たというわけ。
 

 
 

 
ソースで振られているかどうか確認もしたが
t.idになっているのに気づかなかった。
  

Ajax通信を書きますよ。
 
 
①どこと通信? 通信相手をurlを文字列で記述 カンマ
②データプロパティ パラメータで何を渡すの?
→t_id=1とかt_id=10とか渡したい
→t_id=2&u_id=makinoとかいうふうに「プロパティと値、プロパティと値」と渡したいかも
→つまりオブジェクトとして渡す(複数渡すことを見越して)
→プロパティは't_id'(自分で作ったプロパティはシングルコートで挟む)、それからコロン、値はさっきつくりましたね(またまた同じ変数名なので混乱しやすいやつだ) 最後にカンマを忘れずに
③通信方法のタイプは? get
④データタイプ (よくみなさんdateとまちがえるがdataTypeだ) プレーンかXMLなのかジェイソンかなのか
 
しかしこのままだとなにもないらしくてfailのほうにいくらしく、update_likes.phpのほうにecho 'ok';をいれておくよ
 
いいねを連打
(見た目は何も起こらない)
DBをみるといいねが増えている
 
 

さて、押した瞬間にいいねが増えてほしいよね
 
SELECTをまた使うが同じ名前は使えないのでsql2とする
 
--->update_likes.php
  
<?php
//いいねを1つ増やす処理
require_once("config.php");
$sql="UPDATE tweets SET likes=likes+1 WHERE t_id=:t_id";
$stmt=$pdo->prepare($sql);//構文を焼く
$stmt->bindValue(":t_id",$_GET["t_id"],PDO::PARAM_INT);//番号だからINT
$stmt->execute();
//echo 'ok';
 
//いいねがいくつか取得する処理
//同じ名前は使えないので
$sql2 = "SELECT likes FROM tweets WHERE t_id=:t_id";
$stmt2=$pdo->prepare($sql2);
$stmt2->bindValue(":t_id",$_GET["t_id"],PDO::PARAM_INT);
$stmt2->execute();
//fetchして中身を取り出す
$row=$stmt2->fetch(PDO::FETCH_ASSOC);
echo $row["likes"];
 
?>
 
打ち込んだら窓にこれを入れて確認しますよ
http://localhost/php/makino/twitter/update_likes.php?t_id=1;
 
 
更新するたびに数が増える
 
 
PR

コメント

ブログ内検索

カレンダー

03 2025/04 05
S M T W T F S
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30