【使用環境】
PHPバージョン5.6
phpMyAdminバージョン情報: 4.5.1
XAMPPにてローカル環境
ajaxを利用して、データベースの値を書き換え
その結果をPHPの変数に格納したいと考えています。
目的の動きとしては確認のボタンを押して、ajaxでの処理が終わった後に
その結果から表示を切り替えたいと考えています。
表示するphpでは、$GETでidを指定してデータベースから$dataに配列として
格納しています。ですので、リロードを行えば、データベース自身の値は変更
されているので、表示は変更されます。
できれば、リアルタイムでの表示の切り替えを行いたいと考えています。
jquery側で表示非表示する方法もあると思われますが、最善の方法を
ご教授頂けたら幸いです。
宜しくお願い致します。
//ajax 部分 $(function(){ function(){ $.ajax({ type: 'post', url: 'ajax.php', data: { 'ajax_id': '<?php echo h($data['id']); ?>', }, success: function(data){ alert(data); }); } }); } ); });
ajax.phpには「ajax_id」がPOSTされそのidからflagを書き換えるという動きをさせています。
//ajax.php if(isset($_POST['ajax_id'])){ $data['id'] = h(filter_input(INPUT_POST, 'ajax_id')); try { $pdo->beginTransaction(); $stmt = $pdo->prepare("UPDATE member SET flag = :flag WHERE id = :id ;"); bindInt($stmt, ':id', $data["id"]); bindInt($stmt, ':flag', 1); $stmt ->execute(); $pdo->commit(); } catch (Exception $ex) { exit('データベース登録失敗' . $ex->getMessage()); $pdo->rollBack(); }
結果を受け取る側は、$data["flag"] によって表示の制御をしています。
①$data["flag"] =0の場合は「確認」ボタンを表示
②$data["flag"] =1の場合は「確認済み」と表示
//表示するphp <?php echo h($data["email_1_mbr"]); ?> <?php if ($data["flag"] == 0) { ?> <a href="javascript: void(0)" id="sw"> <button type="button" class="btn btn-danger" id="email_1">確認</button> </a> <?php } else if ($data["flag"] == 1) { ?> <i class="fa fa-check" aria-hidden="true"></i>確認済み <?php }?>
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。