Я использую библиотеку Gridstack для создания панели инструментов. Виджеты x, y, width и height можно поместить в json, я пытаюсь сохранить этот json в MySQL.
Я получил массив json для ввода таблицы в MySQL, нажав кнопку, чтобы работать, когда я был в своем университете. Когда я пошел домой, он перестал работать. Я использую PHP и MySQL.
Первая проблема заключалась в том, что строка ниже перестала работать (все было хорошо, прежде чем я пошел домой, не трогал код).
$data = $_GET['name'];
Должен быть изменен на это:
$data = isset($_GET['name']);
Понятия не имею почему. Также остальная часть PHP перестала работать. Нет ошибок, просто ничего не делает. Это не тот сценарий, с которым у меня проблема. Весь Javascript работает просто отлично.
Остальной код:
$('#save').click(function(){
var res = _.map($('.grid-stack .grid-stack-item:visible'), function (el) {
el = $(el);
var node = el.data('_gridstack_node');
return {
id: el.attr('data-custom-id'),
x: node.x,
y: node.y,
width: node.width,
height: node.height
};
window.location.href = "index.php?string=" + JSON.stringify(res);
});
<?php
$connect = mysqli_connect("localhost", "root", "", "widgetCollection");$data = isset($_GET['string']);
//$data = $_POST['variable'];
$array = json_decode($data, true);
foreach((array)$array as $row) {
$sql = "INSERT INTO grids(x, y, width, height) VALUES('".$row["x"]."', '".$row["y"]."', '".$row["width"]."', '".$row["height"]."');";
mysqli_query($connect, $sql);
}
?>
alert(JSON.stringify(res));
});
Isset позволяет вам проверить наличие ключа в массиве и вернет логическое значение.
Вы не должны использовать isset, как это.
Вы можете написать вместо этого:
if (isset($_GET['name'])) {
$data = $_GET['name'] ;
}
Это проверит наличие ключа ‘name’ в массиве $ _GET и, если найдет, введет условие ‘if’ и установит переменную.
Других решений пока нет …