2017-11-10 3 views
0

ちょっと私は2つの送信ボタンと簡単なテキスト入力のフォームを持っています。私はフォームをajaxによって提出したい(私はそれを行う方法を考え出した)。AJAXで2つのボタンが提出されました

形式:

<form method='post' action='likesystem.php' id='7'> 
<input class='form-control' type='hidden' value='7' name='postid'> 

<button type='submit' class='btn btn-success btn-sm' name='poslike' value='liking'>Like this</button> 
<button type='submit' class='btn btn-danger btn-sm' name='poslike' value='disliking'>Dislike this</button> 

次のようにスクリプトは次のとおりです。

<script> 
$('#7').on('submit', function(event) { 
event.preventDefault(); 

$.ajax({ 
    url: 'likesystem.php', 
    type: 'POST', 
    data: $('#7').serialize(), 

}); 
}); 
</script> 

PHPページ:

<?php  

require_once 'config.php'; 

     $link = mysqli_connect($DB_SERVER, $DB_USERNAME, $DB_PASSWORD, $DB_NAME); 

     if(! $link) { 
      die('Could not connect: ' . mysql_error()); 
      echo "Connection Error"; 
     } 

if($_SERVER["REQUEST_METHOD"] == "POST") { 
$postid = $_POST['postid']; 


switch($_POST['poslike']) { 
    case 'liking': 
     $sql = "UPDATE posts SET poslike = poslike + 1 WHERE id = $postid"; 

    case 'disliking': 
     $sql = "UPDATE posts SET dislike = dislike + 1 WHERE id = $postid"; 

} 

if (mysqli_query($link, $sql)) { 
      echo "You did something"; 
     } else { 
      echo "There was an error"; 
     } 

mysqli_close($link); 
} 

何I私はここで間違っている?私は複数のサイトをチェックしましたが、そこの答えが助けになるかもしれないので、今ここでそれを求めています。

+0

あなたが得たものを対、何を期待していましたか? – cHao

+0

'succes/error'コールバック(または' done()/ fail() ')を使ってAjaxイベントを引き起こすべきです、あなたの' switch'が間違っています、 '$ _SERVER [" REQUEST_METHOD "]'は役に立たない.....読み込みチュートリアルと再試行それは非常に乱雑なので今すぐ – pirs

+0

@ cHao私はデータベースが変更すると予想したが、それは起こらなかった。 –

答えて

1
これにフォームを変更し

<form method='post' action='likesystem.php' id='7'> 
    <input class='form-control' type='hidden' value='7' name='postid' id='postid'> 

    <button type='submit' class='btn btn-success btn-sm vote' name='poslike' value='liking'>Like this</button> 
    <button type='submit' class='btn btn-danger btn-sm vote' name='poslike' value='disliking'>Dislike this</button> 

</form> 

とスクリプトのためにこのコードを試してみてください。

<script> 
    $('.vote').on('click', function(event) { 
     event.preventDefault(); 
     var postid = $('#postid').val(); 
     var poslike = $(this).attr('value'); 
     $.ajax({ 
      url: 'likesystem.php', 
      type: 'POST', 
      data: 'postid=' + postid + '&poslike=' + poslike, 
     }); 
    }); 
</script> 
+0

のように表示されることがあります。 ? @JayBlanchard –

+0

あなたのアクションページ 'likesystem.php'でPOSTに何が入っているのか、具体的にお聞かせください。 @D。 Krold –

関連する問題