2011-09-07 150 views
1

我將如何去使用jQuery永久性地向html元素添加一個類。jquery永久性更改html

我打算建立一個圖像庫,使用jQuery sorting plugin分類到不同類型/類別中。我想在每張圖片下方添加一個下拉框,允許用戶更改類型(添加/刪除類),該類型會永久更改下一次加載的HTML。我將如何去做這件事?

編輯:好了,所以從我可以放在一起,我應該使用這種方法:

  1. jQuery的添加/刪除類。
  2. 通過AJAX請求發送完整的HTML源代碼。
  3. PHP寫入完整的HTML文件或有沒有辦法只替換PHP中的文件的特定部分?
+0

所有用戶都可以使用該更改嗎?或者每個用戶都是獨立的? –

+0

範圍過寬。你基本上在問如何編寫一個迷你CMS! (有點) –

+0

不是一個CMS,只是一個頁面排序圖像。 –

回答

3

您首先需要了解客戶端腳本和服務器端編程之間的區別。

服務器將返回一組html在您的情況下由服務器端php生成的每個響應。

如果你想修改某個元素上的一個類,並且你希望這個修改能夠在下一個生成的服務器端PHP響應中生存下來,你需要以某種方式通知服務器你的變化。

有幾種選擇可以將數據從客戶端發送到服務器端。

  1. 存放在hiddenfield
  2. 值進行AJAX請求,並在一些地方保存價值的服務器上,以便它知道在請求這種變化。
  3. 將其添加到請求的url的查詢字符串中。
+0

好吧我理解的AJAX過程,這需要在PHP中完成,但有沒有辦法通過添加類名來物理改變文件? –

+0

如果我理解正確,您想要使用下拉菜單更改類型,那麼當您應用過濾器時,結果會發生變化? (我從演示網站看到這個) – Peter

+0

是的,這是正確的,雖然不是將它保存在cookie中或涉及到數據庫,但我想知道如何才能真正修改HTML永久性,就像添加/刪除一個類。 –

4

您可以使用jQuery's ajax功能將已編輯的HTML發送回服務器,以便在用戶進行更改後存儲在數據庫中。

然後,您可以在下次加載時從數據庫中建立頁面的相關部分。

$('#mySelectBox').change(function(){ 
$.ajax({ 
    url: "updateHtml.php", 
    data: $('#myEditedHtmlContainer').html(), 
    success: function(){ 
    // do something on success 
    } 
}); 
}); 
0

一個解決方案是將用戶決定存儲在cookie中。在非常頁面加載期間,您需要檢查cookie中的適當值並基於該值應用CSS。

+0

如果應用這些類的用戶是唯一需要查看這些類的用戶,那麼只有一個正確的解決方案。 – fvu