我有一个表格可以在MySQL表格中保存一些数据,在这之后,网站会重定向到我不想发生的index.php页面,我只是希望它留在同一页。
我有一些ajax传递表单值:
$("#incomeSave").click(function() {
alert("incomeSave");
$.ajax({
type:"POST",
url: "actions.php?action=incomeSave",
data: "date=" + $("#incomeDate").val() + "&value=" + $("#incomeValue").val() + "&category=" + $("#incomeCategory").val() + "&subcategory=" + $("#incomeSubCategory").val() + "&account=" + $("#incomeAccount").val() + "&description=" + $("#incomeDescription").val(),
success: function(result) {
alert(result);
}
})
})
然后执行查询:
if ($_GET['action'] == "incomeSave") {
if (!$_POST['value']) {
echo "Valor vazio";
} else {
mysqli_query($link, "INSERT INTO incomes (`user_id`,`income_date`,`income_value`,`income_category`,`income_subcategory`,`income_account`,`income_description`) VALUES ('1','". mysqli_real_escape_string($link, $_POST['date'])."','". mysqli_real_escape_string($link, $_POST['value'])."','". mysqli_real_escape_string($link, $_POST['category'])."','". mysqli_real_escape_string($link, $_POST['subcategory'])."','". mysqli_real_escape_string($link, $_POST['account'])."','". mysqli_real_escape_string($link, $_POST['description'])."')");
echo "After SQL";
}
}
我该怎么办才能将页面重定向到index.php?
答案 0 :(得分:0)
如果您的HTML中有<form>
标记,则任何<button>
或<input type="button">
都会自动触发重新加载。要防止这种情况发生,您需要传递element
参数并调用.preventDefault()
方法。以下是e
作为参数:
$("#incomeSave").click(function(e){
e.preventDefault();
alert("incomeSave");
$.ajax({
type:"POST",
url: "actions.php?action=incomeSave",
data: "date=" + $("#incomeDate").val() + "&value=" + $("#incomeValue").val() + "&category=" + $("#incomeCategory").val() + "&subcategory=" + $("#incomeSubCategory").val() + "&account=" + $("#incomeAccount").val() + "&description=" + $("#incomeDescription").val(),
success: function(result){
alert(result);
}
});
});
此外,您的数据库对SQL注入是开放的,使用参数化语句!