2015-06-22 5 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 'будут пустыми. Попробуйте добавить 'return postId;' в конце функции. – Sean

+1

'getElementsByTagName (" post-id ");' недействителен. 'post-id' не является элементом' html'. Он должен быть специфичным для элементов 'html', таких как' input', 'button',' select' и т. Д. !! –

ответ

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); 
    } 
}); 
Смежные вопросы