我想在div中订购四个元素。该命令是从mysql数据库中提供的,其中提供了类似"email//weather//calendar//clock"
的字符串。如果我按拖放更改顺序,则应将字符串更改为更新的顺序并将其发回数据库。我已经可以通过拖放移动这些元素了,但是当我从数据库中读取字符串并且命令它将无法工作时我陷入困境。
This is the code I have so far, but I only get warnings and it doesn't display what I want
答案 0 :(得分:0)
我很遗憾没有评论,因为我是新来的。
1)您的数据库条目是按ID排序的吗?
2)你想在拖放你的div时实时更新数据库,还是在执行保存按钮时更新?
3)你熟悉JavaScript / jQuery和AJAX吗?
您可以并且我认为还应该使用编辑器功能嵌入您的代码,而不是在外部文件中以提高可读性。
更新:
一些示例,快速转储示例代码:
HTML和JS:
<div id="widgetContainer" class="widget-container">
<div id="weatherWidget" class="widget">
</div>
//...
</div>
<script>
$(".widget").on('drop', function(){
var widgetIndexArray = [];
var jsonPostObject = {"WidgetArray":widgetIndexArray};
$(this).siblings().each(function () {
widgetIndexArray.push($(this).id)
});
$.post(
'path/to/ajax/file/file.php',
jsonPostObject,
function (data, status) {
//.. do something when ajax finished
}
)
});
</script>
收到AJAX请求的php文件:
<?php
$ajaxInput = json_decode($_POST['WidgetArray']);
$databaseString = "";
for ($i = 0; $i < $ajaxInput ; $i++){
$databaseString += $ajaxInput[$i];
$databaseString += "//";
}
//... insert your string here to database
?>
答案 1 :(得分:0)
有关订单的信息应该是一列,看起来像天气//日历//电子邮件//时钟&#34;。
应该实时更新数据库。对于Javascript / jQuery和AJAX,我是一个新手,但拖放工作已经开始了。
<ul id="sortable">
require 'db.php';
$query = "SELECT data FROM users";
$alignment = array();
$widgets = array("email","calendar","clock","weather");
if($result = $mysqli->query($query)){
while($obj = $result->fetch_object()){
$alignment = $obj->data;
for($x = 0; $x < count($alignment); $x=$x+1){
for($y=0; $y < count($widgets); $y=$y+1){
if(strcm($alignment[$x], $widgets[$y])){
echo "<li class=\"ui-state-default\" id=\"$widgets[$y]>$widgets[$y]</li>";
}
}
}
}
$result->close();
}
?>
</ul>