2017-11-23 4 views
-3

ajaxを使用してデータベースにデータ値を送信しようとしていますが、動作しません。私を助けてください。 ajaxを使用してデータベースにデータ値を送信しようとしていますが、動作していません。私を助けてください。ajaxでmysqlにデータを保存

form.php

<!DOCTYPE html> 
<html> 
<head> 
    <title></title> 

</head> 
<body> 
    <form id="send_value" action="form.php" method="post"> 
     <input type="text" name="name" value="" id="name"> 
     <input type="text" name="address" value="" id="address"> 
     <input type="submit" value="submit" id="save"> 
    </form> 
    <script type="text/javascript"> 
     $(document).ready(function() { 
      $('#save').click(function() { 
       var name = $('#name').val(); 
       var address = $('#address').val(); 
       $.ajax({ 
        type: "POST", 
        cache: false,   
        url: 'ajax.php', 
        data: { name: name, address: address}, 
        success: function(data) { 
         alert('data has been stored to database'); 
        } 
       }); 
      }); 
     }); 
    </script> 
</body> 
</html> 

とPHPファイル

<?php 
include('DataModel.php'); 

$con = mysqli_connect("localhost","root","","ajax_test"); 
if (!$con) 
{ 
    die(); 
} 
$name = $_POST['name']; 
$address = $_POST['address']; 

$sql = "INSERT INTO `test`(`name`, `address`) VALUES ($name,$address) "; 
$query = mysqli_query($sql,$con); 
$fetch = mysqli_fetch_assoc($query); 
echo json_encode($fetch); 
?> 
+0

問題点は何ですか?ブラウザのコンソールでJsエラーを確認してください。 – urfusion

+0

エラーメッセージがありますか?あなたの接続がアップしているかどうかを確認するためにあなたのダイ()に何かを印刷しようとしましたか?あなたはあなたの$ SQLクエリをエコーし​​ようとしましたか? –

+1

SQLインジェクションとプリペアドステートメントを読む必要があります。また、insert文の後に行をフェッチしません。 – jeroen

答えて

1

あなたは

$sql = "INSERT INTO `test`(`name`, `address`) VALUES ('$name','$address') "; 

それとも、この

​​のようなのparamをバインドすることができ、ここで引用符を忘れてしまっていますの
2

引用は

$sql = "INSERT INTO `test`(`name`, `address`) VALUES ('$name', '$address')"; 

あなたはまた、プリペアドステートメントを使用する必要がありますが、非常に非常に少なくともにあなたがバグに遭遇したなかれクエリ

$name = mysqli_real_escape_string($con, $_POST['name']); 
$address = mysqli_real_escape_string($con, $_POST['address']); 

にそれらを渡す前に、あなたの文字列をエスケープしてくださいクエリの周りに欠けていますアドレスや名前にシングルクォーテーションが含まれていたり、SQLインジェクション攻撃に晒されたりすることがあります。

関連する問題