Ajax POST 与 mysqli 数据库查询

我正在尝试让 Ajax POST 到与主索引位于同一目录中的 another.PHP 文件。我的想法是,我想要一个人们可以写入并在数据库中即时更新的在线日记。


目前,我的ajax看起来像这样


    $('#diary').on('input propertychange', function() {

    $.ajax({

        type: "POST",

        url: "updatedatabase.php",

        data: {content: $('#diary').val()},

        success: function(  msg  ) {

             alert('Data Saved: ' + msg);

         },

        dataType: "text"

    });

});

我的 PHP 在 updatedatabase.php 页面上看起来像这样


<?php


session_start();


if ($_POST['content']) {


$link = mysqli_connect("location", "username", "password", "databasename");


if (mysqli_connect_error()) {

    echo "Could not connect to database";

    die;

}


$query = "UPDATE `users` SET `Diary` = '".mysqli_real_escape_string($link, $_POST['content'])."' WHERE email = '".mysqli_real_escape_string($link, $_SESSION['email'])."' LIMIT 1";


if (mysqli_query($link, $query)) {

    echo "Success";

} else {

    echo mysqli_error($link);

    echo "Failure";

}


}


?>

我试过从 .on 更改为 .bind,我试过 ajax 代码的不同变体和更新数据库代码,我试过查看 StackOverflow。

ps 我知道在 mysqli 查询注入中有几个安全错误。这主要是为了我自己的实践和学习之旅,但我正在努力弄清楚这一点。

提前谢谢了。


达令说
浏览 68回答 2
2回答

缥缈止盈

用于.on('change')绑定到输入事件。此外,如果您要使用 ajax,请不要使用 slim minified jquery 库,它不包含在内。编辑:我使用这段 html/js 使脚本正常工作:<script        src="https://code.jquery.com/jquery-3.4.1.min.js"        integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo="        crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script><script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script><script type="text/javascript">  $('#diary').on('change', function() {    $.ajax({      type: "POST",      url: "updatedatabase.php",      data: {content: $('#diary').val()},      success: function(  msg  ) {        alert('Data Saved: ' + msg);      },      dataType: "text"    });  });</script>

森栏

您应该像这样使用 jQuery中的更改:&nbsp;$('#diary').on('change',&nbsp;function()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;code... &nbsp;});要么&nbsp;$(document).on('change',&nbsp;'#diary',&nbsp;function()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;code... &nbsp;});或者如果 #diary 不是动态创建的(在运行时),你可以这样做:&nbsp;$('#diary').change(function()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;code... &nbsp;});
打开App,查看更多内容
随时随地看视频慕课网APP