phpの値をバックグラウンドでデータベースに書き込みたい
そんなことを思っていたときに何かの記事を見ながら作りました。備忘録として残したいと思います。
形としては
onClick → Ajaxで別ファイルにパラメータを飛ばす → データベースに書き込む
といった感じで、onClickの所をいろいろ工夫すればなかなか使えるんじゃないかなと思います。
詳しくは、
onClickでindex.phpからpost.phpにAjaxで値を飛ばす。
次に、post.phpでindex.phpから飛ばされた値を受け取る。
そして、データベースに書き込む。
という流れです。
index.php
<?php
$name = "super2baba";
$phone = "090-0000-0000"
?>
<!doctype html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<form>
<input type="button" value="submit" onclick="ajaxPost('<?php echo $name ?>','<?php echo $phone ?>');">
</form>
</body>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script>
function ajaxPost(param1, param2){
$.post("post.php", {
input1:param1, input2:param2
},function(json){
alert("パラメータを2つをPOSTしました");
});
}
</script>
</html>
post.php
<?php
//xxxはそれぞれに合ったものに変更
$con = mysqli_connect('localhost', 'xxx', 'xxx') or die(mysqli_error());
mysqli_select_db($con,'xxx');
mysqli_query($con,'SET NAMES UTF8');
// index.phpからPOSTされたパラメータを受け取る
$name = $_POST["input1"];
$phone = $_POST["input2"];
mysqli_query($con,"lock tables xxx write");
$sql = "UPDATE xxx SET name = '". $name ."' ";
$res = mysqli_query($con,$sql);
mysqli_query($con,"unlock tables");