我有一个脚本,可以通过更新 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/