php 使用 AJAX 的表单始终返回0

mrwjdhj3  于 2022-12-02  发布在  PHP
关注(0)|答案(1)|浏览(175)

所以我尝试将表单中的 AJAX 调用信息发送到SQL中的表。

<form name="likedGames"  method="post" id="likeForm" action="like.php">
          <input type="text" name="liked" id="likeInput" value="123"/><button type="submit" id="likeButton"><i id="like" class="fa-solid fa-heart"></i></button>
        </form>

这是 AJAX 调用:

$(document).ready(function () {
  $("#likeForm").submit(function (event) {
    var liked = $("#likeInput").val();
    $.ajax({
      type: "POST",
      url: "like.php",
      data: liked,
    }).done(function (data) {
      console.log(data);
    });
    event.preventDefault();
  });
});

这就像.php:

<?php

    $started = session_start();
        $conn = new mysqli('localhost','root','password','mydb');
    if(!$conn){
        die("Connection Failed: ".mysqli_connect_error());
    }

    $userId = $_SESSION['userId'];
    // $like = $_POST['liked'];
    $like = isset($_POST["liked"] ) ? $_POST["liked"]: '';

        $stmt = $conn->prepare("INSERT INTO likes(user_id, gameId) VALUES (?,?)");
        $stmt->bind_param("ss", $userId, $like);
        $execval = $stmt->execute();
        $stmt->close();
        $conn->close();

?>

正如您可能看到的,在like.php中有一个注解行,因为这是我第一次尝试从喜欢的输入中检索信息,但没有成功。
现在当用户点击提交按钮时,数据库确实得到了更新,但是gameId列的值总是0。它不应该得到123(或者用户在输入中键入的任何值)吗?我现在很困惑,所以任何帮助都将非常感谢。另外,如果有什么我可以做的来改进帖子,请告诉我。谢谢!

uqzxnwby

uqzxnwby1#

我猜,您的ajax调用应该如下所示:

$.ajax({
  type: "POST",
  url: "like.php",
  data: {liked : liked},
}).done(...)

请参阅:https://api.jquery.com/jquery.ajax/

相关问题