我有一个将一些数据保存在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?

最佳答案

如果您的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注入,请使用参数化语句!

关于php - MySQL查询后PHP无法重定向,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43198042/

10-12 04:10
查看更多