通过AJAX将数据发送到MySQL

时间:2015-06-22 02:54:09

标签: javascript php jquery mysql ajax

所以我试图用AJAX将动态生成的数据发送到mysql。

 <script type="text/javascript">
   var postId;

   function getdata(){
       postId = document.getElementsByTagName("post-id");
   }
   function senddata(){
       var data = getdata();

       $.ajax({
            url: "php/count_shares.php",
            type: "POST",
            data: data,
            success: function(data){
             console.log(data);
         }
     });
   }
</script>

该功能通过每张图片的onClick方法完成。我在post-id标签中发送了一个字符串。然后使用count_shares.php,我的代码如下:

$opt = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
);
$server = '';
$dbname = '';
$dsn = "mysql:host=".$server.";dbname=".$dbname;
$username = '';
$password = '';

 if (isset($_POST['data'])) {

   $click = $_POST['data'];

     $sqlcs = ("UPDATE posted_ad_img SET share_count = share_count + 1 WHERE post_id = $click");

   $dbcs = new PDO($dsn, $username, $password);
   $dbcs->$opt;
   $dbcs->prepare($sqlcs);

   $dbcs->execute();
}

但是没有任何内容被发送到我的数据库。对此事有任何帮助吗?

2 个答案:

答案 0 :(得分:1)

试试这个:

$.ajax({
        url: "php/count_shares.php",
        type: "POST",
        data: "data="+data,
        success: function(data){
         console.log(data);
     }
 });

答案 1 :(得分:0)

首先 - 您不从getData函数返回值。需要改变它

function getdata(){
   postId = document.getElementsByTagName("post-id");
   return postId[0].nodeValue;
}

此外,你必须更改你的ajax请求,如下所示:

$.ajax({
        url: "php/count_shares.php",
        type: "POST",
        data: {data: data},
        success: function(data){
         console.log(data);
     }
 });

如果你提供你的html我可以写更多细节