我文档头部的脚本:
<script>
$(function () {
$('form#ratingsform').on('submit', function (e) {
$.ajax({
type: 'post',
url: '/dev/scripts/ratevideo_vibrary.php',
data: $(this).serialize(),
success: function () {
alert('form was submitted');
}
});
e.preventDefault();
});
});
</script>
我的 html 表单(注意,这是在 PHP 回显中):
<form id="ratingsform" action="/dev/scripts/ratevideo_vibrary.php" method="post">
<input type="hidden" name="video_id" value="' . $friend_video_upload_id . '" />
<input type="hidden" name="peep_id" value="' . $friend_id . '" />
<input type="hidden" name="page" value="' . $_GET['page'] . '" />
<div class="video-stars"><input id="imgstar" type="image" src="/dev/images/rate_video_icon.png" name="rating" value="1" border="0" /></div>
<div class="video-stars"><input id="imgstar" type="image" src="/dev/images/rate_video_icon.png" name="rating" value="2" border="0" /></div>
<div class="video-stars"><input id="imgstar" type="image" src="/dev/images/rate_video_icon.png" name="rating" value="3" border="0" /></div>
</form>
这是位于 /dev/scripts/ratevideo_vibrary.php 中的脚本:
<?php
require('password.php');
require('config.php');
require('checklogin.php');
$mysqlicon = mysqli_connect($db_host, $db_username, $db_password, $db_name);
//identify the user by comparing tokens
$find_user_id = mysqli_query($mysqlicon, "SELECT * FROM logins WHERE token='$storedtoken'");
//grab the user's UUID
while ($row = mysqli_fetch_array($find_user_id)) {
$uuid = $row['user'];
}
$videoID = $_POST['video_id'];
$peep_id = $_POST['peep_id'];
$page = $_POST['page'];
$rating = $_POST['rating'];
//check if the user already rated this video
$find_if_user_rated_video = mysqli_query($mysqlicon, "SELECT ID FROM videoRatings WHERE videoID = '$videoID' AND raterID = '$uuid'");
if (mysqli_num_rows($find_if_user_rated_video) > 0) {
header ('Location: /dev/vibrary/vibrary_iseeyou_alleyes.php');
mysqli_close($mysqlicon);
exit();
}
//add the rating
mysqli_query($mysqlicon, "INSERT INTO videoRatings VALUES ('', '$videoID', '$uuid', '$rating')");
mysqli_close($mysqlicon);
?>
单击任何“视频明星”提交表单时,表单运行正常,但它重定向到 ratevideo_vibrary.php 并且不在同一页面上运行。这是我第一次使用 AJAX 来解决这个问题,所以我确定我在这里遗漏了一些明显的东西。另请注意:此表单在页面上出现多次(用于多个视频)。