我有一个应用程序(使用JqueryUI.GridSort拖放),该应用程序允许用户上传照片,然后按照他们希望使用拖放的顺序对照片进行排序。
在页面加载时,系统会提示用户上传已发布到下一页的照片。当他们的下一个页面上到达我的PHP脚本创建一个<ul id="sortable">
包含<li>
每个他们上载的文件。对于他们上传到站点的每张图片,都会<li>
创建一个新图片。其内部<li>
是一个<img>
用于为其<li>
上载图像的图片。
我的目标是在将图片排列在拖放界面后,能够“保存”图片的顺序。例如,一旦他们按照想要的顺序完成了对图片的排列和排序后,我希望能够向他们发送另一个创建xml文件的页面(我不需要XML的帮助,只保存了订单),并使用他们以正确顺序创建的列表。
经过数小时的PHP修改后,我意识到由于PHP是一种服务器端语言,因此它看不到渲染后的排序。所以我的问题是,有没有办法让JavaScript或Ajax读取列表的当前顺序,并将其发布到下一页?如果您知道如何做,请提供一个示例,其中一个页面的POST,另一个页面的接收?我对Ajax不太熟悉。
非常感谢您提供的任何帮助。
示例代码(foreach语句的内容,该语句为上载的每个文件创建一个LI)
$imgID++;
echo '<li class="ui-state-default"><img id="'.$imgID.'"'.' src="user_files/'.$file_name.'" draggable="true" height="90" width="95"></li>';
编辑
main page :
<script>
$('#my_form').on('submit', function() {
var ordered_list = [];
$("#sortable li img").each(function() {
ordered_list.push($(this).attr('id'));
});
$("#ordered_list_data").val(JSON.stringify(ordered_list));
});
</script>
<div id="tesT">
<form id="my_form" action="update_data.php">
<!-- other fields -->
<input type="hidden" id="ordered_list_data"></input>
<input type="submit" value="Proceed to Step 2"></input>
</form>
</div>
update_data.php:
<?php
// process other fields as normal
if(isset($_POST['ordered_list_data'])) {
$img_ordering = json_decode($_POST['ordered_list_data']);
echo "1";
} else {
echo "nodata";
}
// do things with the data
?>
我建立了一个JSFiddle,基本上执行了David发布的相同操作。
我添加了一块代码,将结果写到页面上的div上,因此您可以看到发生了什么:
<input type="button" id="savebutton" value="save"/>
<div id="output"></div>
<form id="listsaveform" method="POST" action="script.php">
<input type="hidden" name="list" id="hiddenListInput" />
</form>
Javascript:
$(function() {
$( "#sortable" ).sortable();
$( "#sortable" ).disableSelection();
$( "#savebutton" ).click(function() { LISTOBJ.saveList(); });
});
var LISTOBJ = {
saveList: function() {
var listCSV = "";
$( "#sortable li" ).each(function() {
if (listCSV === "") {
listCSV = $(this).text();
} else {
listCSV += "," + $(this).text();
}
$("#output").text(listCSV);
$("#hiddenListInput").val(listCSV);
//$("#listsaveform").submit();
});
}
}
我的目标是通过拖放对tableview进行排序。我举了一个例子:http://docs.oracle.com/javafx/2/fxml_get_started/fxml_tutorial_intermediate.htm 对于拖放,我通过Scene Builder添加了fxml 制造了控制器 但是在drag Drop,我无法得到我扔下物体的那排位置。我得到的只是手机信息<代码>文本[Text=“
问题内容: 我有一个清单: 使用javascript,如何随机重新排列列表项? 问题答案: var ul = document.querySelector(‘ul’); for (var i = ul.children.length; i >= 0; i–) { ul.appendChild(ul.children[Math.random() * i | 0]); }
我试图在使用可排序库创建的可排序HTML列表上模拟拖放操作。它使用本机HTML5API实现可拖动元素和列表中的排序。 为了模拟这些拖动事件,我找到并修改了以下JavaScript代码: 我尝试拖放的部分的标记如下: 当我尝试在浏览器的拖动事件侦听器上设置断点,并在浏览器控制台中使用以下命令执行helper函数时: 我注意到dragstart事件从未被捕获,但mousedown和dragover事件
我正在尝试比较自定义对象的列表。我设置了LEVENSHTEIN_DISTANCE并创建了自定义比较器。对象之间唯一的区别是列表中值的顺序。我希望“没有变化”,但我得到了listchange。结果和示例如下。我做错了什么? 非常感谢和问候,安德烈
我有一个响应站点,包含html5视频。我有一些javascript可以检查视频元素的大小是否低于某个阈值。如果是,它将移除控件,将视频播放按钮覆盖图像放置在视频元素的顶部,然后将click事件添加到保存视频元素的容器中。当点击容器时,它会将视频复制到一个模态对话框中并播放视频。 现在的困境是: webm版本没有任何问题。 modal视图的mp4版本在Safari中没有问题。 如果mp4播放到位(即
本文向大家介绍javascript实现表格排序 编辑 拖拽 缩放,包括了javascript实现表格排序 编辑 拖拽 缩放的使用技巧和注意事项,需要的朋友参考一下 简单表格排序 可以双击编辑 自定义编辑后的 规则 可拖动列进行列替换 可推动边框进行列宽度的缩放 已知BUG: ie6下 中文不自动换行 非ie下字母和数字也不自动换行确实让人恼火 chrome浏览器下点击运行好像问题