我有以下问题:
我想要完成的是:
用户单击提交/图像类型按钮
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();
}
?>
最佳答案
我想出了问题所在,有点傻,我没注意到,但迟到总比没有好。
为了赶上我的onsubmit函数,我不得不在PHP页面末尾``包含''JS脚本,因此禁用了默认事件(也就是提交按钮),将我的表单和页面重新加载/ POST提交到另一个PHP文件。
现在一切都很好