【发布时间】:2017-10-29 15:48:05
【问题描述】:
我想在我的水平列表中拖动元素,而不是将位置保存在 mysql 中。
文本 sort=1&sort=2.... 仅用于测试目的。
这是我在 jquery 中的代码
$("#sortable").sortable({
stop: function(event, ui) {
var data = $(this).sortable('serialize', {key:"sort"});
$('#tags').text(data);
$.ajax({
data: data,
type: 'POST',
url: 'listpriority.php'
});
}
});
可排序功能正在运行。它序列化我的列表。 现在在服务器端,我想接收序列化的数据。
我的php代码:
<?php
print_r($_POST['sort']);
?>
但是 print_r 函数只显示列表的长度。 完整的 php 代码应该是:
<?php
include = ""; // the connection to sql
if(isset($_POST['sort'])) {
$sort = $_POST['sort'];
$sql = "UPDATE tags SET position='".$sort."'";
$result = mysqli_query($conn, $sql);
}
?>
【问题讨论】:
-
尝试
var_dump($_POST);查看您的数据内容是否在$_POST数组中的另一个键中 -
尽管这不是问题的一部分,但我强烈建议您不要在没有对给定值进行任何验证的情况下将发布的值连接到 sql 查询中,因为存在 sql 注入的风险。如果你还没有意识到这个安全问题,我建议你看看这个en.wikipedia.org/wiki/SQL_injection
-
array(1) { ["sort"]=> string(1) "5" }这是我使用 var_dump 函数时得到的结果 -
我认为您需要从 js 中的
ui对象中获取所需的值,然后手动将它们添加到 post-data 中。 Have a look here
标签: php jquery mysql jquery-ui