2015-06-22 132 views
1

所以我试图发送动态生成的数据与AJAX到MySQL。通过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(); 
} 

但是没有东西被发送到我的数据库。在这个问题上的任何帮助?

+0

请呼应查询错误看whats wrong – Ormoz

+1

你的函数getdata()不会返回任何东西,所以你的'var data'将是null。尝试在函数的末尾添加'return postId;'。 – Sean

+1

'getElementsByTagName(“post-id”);'无效。 'post-id'不是任何'html'元素。它应该是''''特定的'输入',''按钮,'选择'等! –

回答

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我可以写更多的细节

1

试试这个:

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