javascript - 将 JS 值解析到 MySQL DB

标签 javascript php mysql

我有一个脚本,可以通过更新 Javascript 中的变量来跟踪某些图像位置。但是,我需要将该值解析到数据库,以便使该对象在用户下次登录时保持在同一位置。我的 JS 代码如下:(house_positions.js)

    $(document).ready(function(){
$(".item").draggable({
containment: '#house_wall1',

drag: function(){
        var offset = $(this).offset();
        var xPos = offset.left;
        var yPos = offset.top;
        $('#posX').text('x: ' + xPos);
        $('#posY').text('y: ' + yPos);
    },

// Find original position of dragged image.
start: function(event, ui) {

    // Show start dragged position of image.
    var Startpos = $(this).position();
    $("div#start").text("START: \nLeft: "+ Startpos.left + "\nTop: " + Startpos.top);
},

// Find position where image is dropped.
stop: function(event, ui) {

    // Show dropped position.
    var Stoppos = $(this).position();
    $("div#stop").text("STOP: \nLeft: "+ Stoppos.left + "\nTop: " + Stoppos.top);

}
});
});

然后我进行 MySQL 数据库调用:

<?php
        require_once('x'); // don't mind the connection

                    window.newX = $_POST['newx'];
        window.newY = $_POST['newy'];

            /* Register a prepared statement */
            if ($stmt = $mysqli->prepare('UPDATE house_room1 SET x = newX, y =  newY WHERE `user_id`=?')) { 

                /* Bind parametres */
                $stmt->bind_param('i', $id);

                /* Insert the parameter values */
                $id = 1;

                /* Execute the query */
                $stmt->execute();

                /* Close statement */
                $stmt->close();

            } else {
                /* Something went wrong */
                echo 'Something went terrible wrong'     . $mysqli->error;
            }
?>

如您所见,我尝试将 Javascript 中的“xPos”变量插入 PHP 中的 MySQL 语句中。我不相信这会起作用,但是很好。谁能告诉我这怎么可能?提前致谢。

更新: 我的 Ajax 代码:

function houseAjax()
            {
            var xmlhttp;
            if (window.XMLHttpRequest)
              {// code for IE7+, Firefox, Chrome, Opera, Safari
              xmlhttp=new XMLHttpRequest();
              }
            else
              {// code for IE6, IE5
              xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
              }
            xmlhttp.onreadystatechange=function()
              {
              if (xmlhttp.readyState==4 && xmlhttp.status==200)
                {
                $.post("update_house.php.asp",{window.newx: xPos, window.newy: yPos},function(result){

                  });
                }
              }
            xmlhttp.open("POST","update_house.php", true);
            xmlhttp.send();
            }

最佳答案

你这样做有点错误,当调用更新数据库的 php 函数时,你必须将参数从 javascript 代码传输到 PHP。和以前一样,你的 php 不会知道这一点。

Java 脚本示例:

$.post("http://www.pbpixels.com/x/update_house.php",{newx:xPos, newy: yPos},function(result){
    //data is updated
  });

无论您在服务器端 php 页面中的何处捕获 ajax 请求,只需从调用中获取它:

PHP:

newX = $_POST['newx'];
newY = $_POST['newy'];

现在调用更新函数:

if ($stmt = $mysqli->prepare('UPDATE house_room1 SET x = newX, y = newY 
                                                           WHERE `user_id`=?')) 

无论如何,我建议您通过执行 some reading 来扩展您的 Ajax 知识。

祝你好运

关于javascript - 将 JS 值解析到 MySQL DB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21884080/

相关文章:

javascript - Ajax加载导致内容跳转

PHP mysql_query - 获取当前星期与当前日期的行

mysql - 为具有相同 where 条件的多个查询编写单个查询

php - php MYSQL中的多个AND OR语句

php - 使用数据表时,表中的记录计数无法正确显示

javascript - 解释一下这个函数如何去除负值

javascript - 将 7 天日历更改为 5 天日历

javascript - 如果提交成功,如何让 div 消失?

php - 在/不发送请求之前检查由 PHP SoapClient 调用创建的 XML

javascript - 从嵌套组件更新上下文不起作用