LoginSignup
16
18

More than 5 years have passed since last update.

jQueryのAjaxでPHPのパラメータをデータベース(mySQL)に書き込む

Last updated at Posted at 2014-08-09

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");

16
18
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
18