2014-02-19 3 views
0

У меня есть скрипт, который отслеживает определенные позиции изображений, обновляя переменную в Javascript. Однако мне нужно разобрать это значение в БД, чтобы сделать объект остаться то же самое место в следующий раз, когда пользователь входит в Мой JS код ниже:. (House_positions.js)Parse JS value в MySQL DB

$(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; 
      } 
?> 

Как вы можете видеть, я попытался вставить «XPOS» переменную из Javascript, в заявлении MySQL в PHP. Я не верил, что это сработает, но хорошо. Может ли кто-нибудь сказать мне, как это возможно? Заранее спасибо.

UPDATE: Мой 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(); 
      } 
+0

вы когда-нибудь слышали о «AJAX»? – underscore

+0

Да, вызов базы данных вызывается с помощью ajax, но я все еще не уверен, как его анализировать в базе данных? – user3287771

+0

@samitha Я отправил свой код Ajax, если это помогает – user3287771

ответ

0

Вы делаете это немного неправильно, при вызове функции PHP, что обновить БД необходимо перенести параметры из яваскрипта кода в PHP. как раньше вы делали бы то, что ваш php не узнает об этом.

Java Пример сценария:

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

Где бы вы ловите АЯКС запрос на странице стороне PHP сервера просто получить его от вызова:

PHP:

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

и сейчас называют функция обновления:

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

Во всяком случае, я бы порекомендовал вам расширить свои знания Ajax делая some reading

удачи

+0

Так что, возможно, что-то вроде выше? Могу ли я разместить ваш пример javascript внутри функции ajax? – user3287771

+0

Да, просто убедитесь, что X и Y являются глобальными переменными и удаляют второй вызов ajax. –

+0

. Хорошо, я обновил инструкцию UPDATE до того, что выглядит более правильно, что мне нужно сделать сейчас? Какой вызов ajax вы хотите, чтобы я удалил и какие глобальные переменные X и Y? – user3287771