忍者ブログ

からすまる日誌 mySQL

授業ノートのまとめ

応用(17) data属性といいね

×

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

応用(17) 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

コメント

ただいまコメントを受けつけておりません。

プロフィール

HN:
karasumaru
性別:
非公開

P R