/ / Два бутона оформят подаване с AJAX - php, ajax, mysqli

Два бутона формират подаване с AJAX - php, ajax, mysqli

Здравейте, имам формуляр с два бутона за подаване и просто въвеждане на текст. Искам формулярът да бъде изпратен от ajax (измислих как да направя това).

форма:

<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);
}

Какво правя погрешно тук? Проверих няколко сайта, но отговорите там биха могли да помогнат и затова го питам тук сега.

Отговори:

0 за отговор № 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>