javascript - 将存储在 localStorage 中的 jQuery 可拖动位置保存到 MySQL

标签 javascript php jquery mysql

我正在使用以下脚本来跟踪和保存多个可拖动的 图像位置到 localStorage。

https://jsfiddle.net/jakecigar/v685v9t6/31/

var positions = JSON.parse(localStorage.positions || "{}");
$(function () {
    var d = $("[id=draggable]").attr("id", function (i) {
        return "draggable_" + i
    })
    $.each(positions, function (id, pos) {
        $("#" + id).css(pos)
    })

    d.draggable({
        containment: "#containment-wrapper",
        scroll: false,
        stop: function (event, ui) {
            positions[this.id] = ui.position
            localStorage.positions = JSON.stringify(positions)
        }
    });
});

在 php/html 方面,我想通过提交按钮将这些位置写入 MySQL 数据库,并以相同的方式从数据库恢复它们。

最佳答案

这里是修改后的 JavaScript 代码,允许将位置写入数据库并重新加载。

<script type="text/javascript">
    $(document).ready(function() {
        var positions = JSON.parse(localStorage.positions || "{}");
        $(function() {
            var d = $("[id=draggable]").attr("id", function(i) {
                return "draggable_" + i
            })


            $.each(positions, function(id, pos) {
                $("#" + id).css(pos)
            })

            d.draggable({
                containment: "#containment-wrapper",
                scroll: false,
                stop: function(event, ui) {
                    positions[this.id] = ui.position
                    localStorage.positions = JSON.stringify(positions)
                }
            });
            $(".saveable").click(function() {
                $.ajax({
                    type: 'POST',
                    url: 'mysql-write.php',
                    data: {
                        myVar: JSON.stringify(positions),
                    },
                    success: function(data) {
                        console.log(data);
                    }
                });
            });


            $(".loadable").click(function() {
                $.ajax({
                    url: 'mysql-read.php',
                    dataType: 'json'
                }).done(
                    function(data) {
                        var newpos = data[0];
                        var positions = JSON.parse(newpos);
                        $.each(positions, function(id, pos) {
                            $("#" + id).css(pos)
                        })
                        localStorage.positions = newpos
                    }
                );
            });
        });
    });
</script>

mysql-read.php 应该提取数据。

echo json_encode(array($row['data']));

mysql-write.php 应该写入传递给数据库的变量。

$writethis = $_POST['myVar'];

关于javascript - 将存储在 localStorage 中的 jQuery 可拖动位置保存到 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49292883/

相关文章:

javascript - OwlCarousel Youtube 视频不显示

javascript - 如何通过函数调用停止 slider ?

javascript - 无法解析包含 unicode 十六进制字符的 JSON 字符串

php - 允许 Apache-PHP 写入文件夹需要什么权限?

javascript - 数据表在分页应用之前旋转并加载整个数据集

php - PDO 在不同服务器中复制行一般错误

javascript - 在表单提交上禁用提交按钮

Javascript:在这种情况下如何替换 document.all ?

javascript - 在 iFrame 中设置 cookie

javascript - 表单字段值不变