没有刷新的Ajax表单发布

时间:2017-11-09 19:26:43

标签: javascript php ajax forms

好的,所以我已经尝试了很长一段时间了。出于某种原因,每次我点击“提交”按钮,页面都会刷新。我需要改变什么?

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

$.ajax({

  url: 'likesystem.php',
  type: 'POST',
  data: $('#like').serialize(),

});
});
</script>

表格如下:

<form method='post' action='likesystem.php' id='like'>
<input class='form-control' type='hidden' value='$row[0]' name='postid'> //I have made a sql request to show me the id of a post in the database
<button type='button' class='btn btn-success btn-sm' name='like' id='submit'>Send</button>
</form>

现在我尝试更改按钮类型&#39;提交&#39;到了按钮&#39;但那并没有帮助。 当我将按钮设置为“提交”时,页面会刷新。然后一切正常但页面重新加载。如果我将其设置为按钮&#39;然后一切都没有发生。

我的目标是将表单发布到php文件,然后使用post id $ row [0]来更新数据库条目。

现在我知道已经有类似的问题已经问到了,但是答案中没有人可以帮助我。

感谢您的回复。

编辑: 我不知道这是否有用,但它不会受到伤害: 这是likesystem.php,其中处理提交的数据并进行sql查询。 @Lexxusss有一个很好的答案,但它在数据库中引起了一些有趣的东西,这使我相信这个代码可能还有另一个问题。 (然而,它确实与页面刷新完全正常,所以......?)

<?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'];




        $sql = "UPDATE posts SET poslike = poslike + 1 WHERE id = $postid";


if (mysqli_query($link, $sql)) {
    //echo "Success";
} else {
    //echo "Error updating record: " . mysqli_error($link);
}

mysqli_close($link);
}

2 个答案:

答案 0 :(得分:1)

您无需关心提交按钮,您需要关心表单。

试试这个:

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

$.ajax({

  url: 'likesystem.php',
  type: 'POST',
  data: $('#like').serialize(),

});
});
</script>

答案 1 :(得分:-1)

只需抓住按钮并按下它即可:

Cannot invoke 'allItemsMatch' with an argument list of type '(Stack2<String>, [String])'