我想出了一種方法來維護和結合兩個列表,但是我有點困惑,究竟如何在沒有存儲頁面的情況下顯示結果。我認爲.data()
可能是解決方案 - 但這對我來說是新的。數據存儲/訪問/寫入/編輯和AJAX調用
基本上我有2所列出:
<ul id="choice_1">
<li><img id="c1_1" src="image_path">Option 1</li>
<li><img id="c1_2" src="image_path">Option 2</li>
<li><img id="c1_3" src="image_path">Option 3</li>
</ul>
<ul id="choice_2">
<li><img id="c2_1" src="image_path">Option A</li>
<li><img id="c2_2" src="image_path">Option B</li>
<li><img id="c2_3" src="image_path">Option C</li>
</ul>
與jQuery
然後我做了一個腳本,在那裏你可以點擊圖片,選擇從左側和右側的列中,當圖像變化的選擇(S)點擊並存儲在兩個隱藏的輸入 - #hidden_1
和#hidden_2
(這部分工作完美,並存儲圖像編號)。我還製作了一個按鈕#transfer
,點擊該按鈕可以獲取隱藏文本輸入的值,並重置選項,就好像沒有選擇任何東西一樣。
我首先想到的是,我應該通過ajax將隱藏數據傳遞給#groups
,但是因爲我不想將數據保存在MySQL中,直到有人點擊保存按鈕,並且我還想處理數據(所以如果有人選擇選項1和選項A + B,然後選擇選項2並選擇A + B,我將用PHP處理數據,以顯示結果爲選項1 + 2,A + B - 因爲它們有效地結合在一起。然後我將使用ID值來顯示選項的名稱,然後我可以刪除或編輯(通過將數據發回列表)組。存儲數據,但我不確定如何從#groups
訪問它因爲它通過ajax被調用。我也認爲這會很方便,尤其是如果我後來在將它們存儲在MySQL中後編輯這些組。我的Ajax調用下面:
var data_array = {};
data_array['id'] = $("#hidden_id").val(); // only used when editing
data_array['c1'] = $("#hidden_1").val();
data_array['c2'] = $("#hidden_2").val();
$.ajax({
url: "processor.php",
type: "POST",
data: data_array,
success: function(response){
$("#groups").html(response);
},
error: function(){
$("#groups").html("<p>Could not process choices</p>");
}
});
在processor.php
我以爲我可以簡單地調用它$("data").data();
訪問.data()
,但它似乎只是返回null - 雖然我當時想,即使我可以稱呼它,怎麼能我允許PHP處理數據,所以我想我必須通過ajax傳遞。但是,如何從#groups
中刪除某些內容,以便它不會在稍後傳回並顯示出來?或者如何用覆蓋更新的數據覆蓋數據?如果我可以在ajax調用後訪問processor.php中的.data()
,寫入它,然後將其提供給頁面的其餘部分,那麼這將是目標。
我希望有人能幫我弄清楚 - 我對.data()
有點新,尤其是從裏面有人用ajax調用。