Сохранение 3 php-переменных из JavaScript - PullRequest
0 голосов
/ 25 мая 2018
<?php 


include ('config.php');


?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Platser</title>

<link rel="stylesheet" href="style.css" type="text/css"/>

<script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.7.2.custom.min.js"></script>
<script type="text/javascript" src="js/jquery.json-2.2.min.js"></script>

</head>

<body>

<div id="glassbox">

<?php 

    if(isset($_POST['Spara'])){

    }

    $antal = $mysqli->query("SELECT `Grupp ID` FROM `Elevgrupper` WHERE `Grupp ID`=25");
    $num = $antal->num_rows;

    $res = $mysqli->query("SELECT `Namn`, `Efternamn` FROM `Elever` WHERE `ID` IN (SELECT `Användar ID` FROM `Elevgrupper` WHERE `Grupp ID` = 25)");

    for ($i = 1; $i<=$num; $i++){
        $get_coords = mysqli_query($mysqli, "SELECT * FROM coords WHERE id = '" . $i . "'");
        $row = $get_coords->fetch_assoc();
        $ok = $res->data_seek($i-1);
        $row1 = $res->fetch_assoc();

        //
        $x = $row['x_pos'];
        $y = $row['y_pos']; 
        echo '<div id="e'. $i .'" class="e" style="left:'.$x.'px; top:'.$y.'px;"><p id="p' . $i .'">'. $row1["Namn"] . " " . $row1["Efternamn"] . '</p></div>';
        }

?>
</div>
<form action="<?echo $_SERVER['PHP_SELF'];?>">
    <input onclick="spara();" type="submit" name="Spara">
</form>

<div id="respond"></div>



</body>
<script type="text/javascript">
    $(document).ready(function() {

        var antal = document.getElementsByClassName("e");
        for (var i = 1; i <= antal.length; i++) {
                $("#e" + i).draggable({ 
                containment: '#glassbox', 
                scroll: false
                });
            }
        });

    function spara(){
        var antal = document.getElementsByClassName("e");
        for (var i = 1; i <= antal.length; i++) {
            var coords=[];
            var coord = $("#p" + i).position();
            var item={ coordTop:  coord.left, coordLeft: coord.top  };
            coords.push(item);
            var order = { coords: coords };
            $.post('updatecoords.php', 'data='+$.toJSON(order), function(response){    
        });
    }
}


</script>

</html>



<?php
if(!$_POST["data"]){
    echo "Nothing Sent";
    exit;
}

include ('config.php');

$data = json_decode($_POST["data"]);

foreach($data->coords as $item) {
    //Extract X number for panel
    $coord_X = preg_replace('/[^\d\s]/', '', $item->coordTop);
    //Extract Y number for panel
    $coord_Y = preg_replace('/[^\d\s]/', '', $item->coordLeft);
    //escape just-in case
    $x_coord = mysqli_real_escape_string($mysqli, $coord_X);
    $y_coord = mysqli_real_escape_string($mysqli, $coord_Y);

    //Setup Query
    $sql = "UPDATE coords SET x_pos = '" . $x_coord . "' WHERE id"= . substr($data->id, -1) .;
    mysqli_query($mysqli, $sql);

    $sql = "UPDATE coords SET y_pos = "'. $y_coord .'"  WHERE id"= . substr($data->id, -1) .;
    mysqli_query($mysqli, $sql);

}

//Return Success
echo "success";



?>

Если я не ошибаюсь, все, кроме функции spara, должно работать, и это сводит меня с ума, поскольку я даже не получаю никаких сообщений об ошибках, кажется, что он проходит весь сценарий без ошибок и ничего не сохраняя.

То, что я пытаюсь сделать, - это инструмент учителя, который из базы данных, содержащей всех учеников, расставляет скамейки, которые вы можете перетаскивать и перемещать по своему выбору, чтобы вы могли выбирать места для всех без особой необходимостиработать учителем.И я хочу сохранить макет, нажав кнопку, которая запускает функцию.

1 Ответ

0 голосов
/ 25 мая 2018

Я считаю, что эта строка может быть неправильной:

$.post('updatecoords.php', 'data='+$.toJSON(order), function(response)

Обычно у меня будет что-то вроде этого:

$.post('updatecoords.php', {data: somevar}, function(response)

Попробуйте, присвойте $.toJSON(order) переменной ипередайте его в соответствии с предложением.

ОБНОВЛЕНИЕ: Основываясь на отзывах Доменикса ниже, вам, вероятно, просто нужно сделать следующее:

$.post('/updatecoords.php', somevar, function(response)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...