PHP查询后不要重定向PHP

时间:2017-04-04 04:08:29

标签: php mysql ajax redirect

我有一个表格可以在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?

1 个答案:

答案 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注入是开放的,使用参数化语句!