2016-08-22 8 views
-3

のSETUP的環境 MySQLデータベースにデータを挿入することはできませんjavascript側からうまく動作します。
(私のWebページには、現在:here)はAjaxの成功は、私は

私の問題は、Ajaxは「ajax.php」に成功呼び出しを行うにもかかわらず、一度私のテーブル「dogcare」mysqlデータベースには何も挿入しないことと呼ばれていることです。 click here to see my table

この はindex.phpを

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8"> 
    <title>Estacionamiento</title> 
    <link rel="stylesheet" type="text/css" href="style.css"> 
    <meta name="viewport" content="width=device-width"> 
</head> 
<body> 
    <h1 class="title"> Dog Care </h1> 
    <script src="https://meet.jit.si/external_api.js"></script> 
    <div class="chart"> 
     <div class="video"> 
     <script> 
      var domain = "meet.jit.si"; 
      var room = "dogcare"; 
      var width = 700; 
      var height = 700; 
      var api = new JitsiMeetExternalAPI(domain, room, width, height); 
     </script> 
     </div> 
     <div class="buttons"> 
     <input type = "submit" name ="on" id="on" value = "Turn On"> 
     <input type = "submit" name ="off" id="off" value = "Turn Off"> 
     </div> 
    </div> 

    <script src="js/jQuery.js"></script> 
    <script type="text/javascript"> 
     $(document).ready(function(){ 
     alert("jquery is working"); 
       $("#on").click(function(){ 
        var accion = "feed"; 
        var flagtime = "no"; 
        var lunchtime = "13:00"; 
        $.ajax({ 
         url: "ajax.php", 
         type: "POST", 
         async: false, 
         data: { 
          "done": 1, 
          "accion": accion, 
          "flagtime": flagtime, 
          "lunchtime": lunchtime 
         }, 
         success: function(data){ 
         alert("ajax successfull"); 
         } 
        }) 
       }) 

     }) 


    </script> 
</body> 
</html> 

私は任意の助けをいただければ幸いですし、誰がどのように接続がありますかどうかをチェックするために私に言うことができるかどう

<?php 

    if (isset($_POST['done'])) { 
     $link = new mysqli("localhost", "myuser", "mypassword", "my_db"); 

     if (mysqli_connect_errno()) { 
       printf("Connect failed: %s\n", mysqli_connect_error()); 
       exit(); 
     } 
     $accion = $_POST['accion']; 
     $flagtime = $_POST['flagtime']; 
     $lunchtime = $_POST['lunchtime']; 

     mysqli_query($link, "INSERT INTO 'dogcare' ('accion', 'flagtime','lunchtime') VALUES ('{$accion}', '{$flagtime}','{$lunchtime}')"); 
     exit(); 
    } 
?> 

このajax.phpです私のデータベース(私は確信していますが、私は "サーバー接続:OK"かそのようなものを見たいと思います)。また、私はPHP言語にはかなり新しいです。

P.S:BTWボタンをオフにしても何も起こりません。
jQueryが動作しているかどうか、そしてajax呼び出しがあるかどうかを確認するために2つの警告を出しました。

答えて

0

は次のように、「``」columnまたはtable名、使用するため'を使用していない、それをあなたのコードをチェックしてください以下。あなたが{braces}を使用している理由を私は理解していない PS)

mysqli_query($link, "INSERT INTO `dogcare` (`accion`, `flagtime`,`lunchtime`) VALUES ('{$accion}', '{$flagtime}','{$lunchtime}')"); 
+0

はい、確かです。それが問題でした。ありがとうございました ! P.S:どちらもしません。私はちょうど例をとっており、中括弧を使っていました。しかし、それはまだ動作します! –

+0

@ JeancarloC。どういたしまして! –

0

クエリが実際に何かを挿入したり、いくつかのエラーを投げた場合、あなたは、PHPのためにチェックすることができます

$query = "INSERT INTO 'dogcare' ('accion', 'flagtime','lunchtime') VALUES ('{$accion}', '{$flagtime}','{$lunchtime}')"; 

$result = mysqli_query($link, $query) or die("Error: ".mysqli_error($link)); 
+0

こんにちは、感謝のためにしかし、私は何を見ているのか分からない。つまり、row_data []はどこですか? Chromeのデベロッパーツールにエラーが表示されるのはどこですか?私はあなたの答えを詳述することができれば感謝します。 –

+0

die( "エラー:" .mysqli_error($ link));エラーをスローするコードです。投稿をもう一度やり直してください&あなたに何がエラーとして表示されますか教えてください。 –

0

あなたの問題はあなたのクエリにある場合、私は知らないが、問題は、あなたがAJAXポストからデータを取得することはできませんあなたのphp方法にすることができ可変部REQUESTを使用してボディリクエストを送信します。これは、ajaxのポスト・データがペイロード要求本体に入るために発生します。だから、あなたは、この使用してデータを取得することができます。その後

$request_body = file_get_contents('php://input'); 
$data = json_decode($request_body); 

を、あなたが使用してあなたの要求を確認することができます。

if ($data->done) 

を、私はそれが動作を期待に答えるために、あなた