【发布时间】:2017-04-22 13:27:53
【问题描述】:
我有以下问题:
我想要完成的是:
- 用户点击提交/图像类型按钮
- Ajax 调用处理提交,调用另一个 PHP 脚本来更新 MySQL 表中的记录,所有这些都无需重新加载页面(显然)
我的 PHP 代码在没有 AJAX 的情况下工作正常,因为它会重新加载和更新记录。但不知何故,ajax 调用不起作用和/或返回任何错误。
我的代码:
$(function() {
$('#like_form').submit(function(event) {
event.preventDefault(); // Preventing default submit button
var formEl = $('#like_form');
var submitButton = $('input[type=submit]', formEl);
$.ajax({
async: true,
type: 'POST',
url: formEl.prop('action'),
accept: {
javascript: 'application/javascript'
},
beforeSend: function() {
submitButton.prop('disabled', 'disabled');
}
}).done(function(data) {
submitButton.prop('disabled', false);
$("#like").fadeOut();
$("#like").fadeIn();
});
});
});
<!-- LIKE een gebruiker -->
<form action="" id="like_form" method='POST' enctype="multipart/form-data">
<input onmouseover="this.src='img/heart2.png'" onmouseout="this.src='img/heart.png'" name='like' id="like" src='img/heart.png' type="image" />
</form>
我的 PHP(以防万一):
<?php
include_once "dbconnection.php";
//if like button (submit button) clicked
if ($_POST){
$conn = DatabaseConnection::getConnection();
$sql = "UPDATE dating_members
SET likes = likes + 1
WHERE member_id = 3";
$stmt = $conn->prepare($sql);
$stmt->execute();
}
?>
【问题讨论】:
-
您确定您的请求适用于邮递员吗?
-
我没有要发布的数据。我想要达到的只是单击提交按钮后,触发 PHP 脚本以更新(增加)mysql 表中的值。提交按钮是我表单中唯一的表单元素。不需要其他输入。
-
你为什么会有一个没有数据的帖子?违背了使用 post 方法的目的。什么是请求状态?你说你没有看到错误,但你没有任何 ajax 错误处理
-
它将来会有一个隐藏的输入字段,它将 $_GET 用户 ID 并将其发布到我的 PHP 脚本中,现在,我已经硬编码了 ID 只是为了测试功能,但是那里与 AJAX 调用一样,没有它,一切正常。
-
不确定是否相关,但 submitButton 使用选择器
'input[type=submit]'但 HTML 中的类型为type="image"。
标签: javascript php jquery mysql ajax