我有一個應用程序(使用JqueryUI.GridSort拖放),允許用戶上傳照片,然後按照他們想要使用拖放的順序排序照片。閱讀通過JavaScript拖放有序列表
在頁面加載時,系統會提示用戶上傳張貼到下一頁的照片。當他們到達下一頁時,我的php腳本爲其上傳的每個文件創建一個包含<li>
的<ul id="sortable">
。對於他們上傳到網站的每張圖片,都會創建一個新的<li>
。 <li>
的內部是<img>
,它爲<li>
設置了他們上傳的圖片的圖片。
我的目標是能夠在拖放界面中排列圖片後「保存」圖片的順序。例如,一旦他們按照他們想要的順序完成整理和排序,我希望能夠向他們發送另一個創建xml文件的頁面(我不需要XML幫助,只保存訂單),並使用它們以正確順序創建的列表。
經過幾個小時對PHP的修補之後,我意識到由於PHP是一種服務器端語言,它無法看到什麼是排序的post render。所以我的問題是,有沒有辦法讓JavaScript或Ajax讀取列表的當前順序,並將其發佈到下一頁?如果你知道怎麼做,你能否提供一個來自一個頁面的POST的例子和另一個接收的帖子的例子?我對Ajax不是很熟悉。
非常感謝您提供的任何幫助。
示例代碼
$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
?>
這看起來很不錯,並且完全按照我想要的方式工作,爲JS小提琴+1。第二個問題。一旦我有了這個訂單,我可以處理我想要的數據。但由於這不是PHP,我不確定我將如何開始將它放入XML中。有沒有辦法將該CSV,或保存的訂單發佈到PHP,以便我可以使用簡單的XML?還是會留在Jquery? –
是的,Javascript塊結尾的註釋行實際上會將CSV發佈到您的服務器(無論您的表單上的操作是什麼 - 在我的示例script.php中)。然後在PHP端,獲取值從$ _POST ['list']並將其保存到您的數據庫。 –
現在測試它非常感謝! –