2015-06-22 119 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); 
    } 
});