我在我的應用程序中使用了很多模態。很多時候我需要將信息從一個「盒子」傳遞給另一個。例如:在AJAX生成的模態之間傳遞動態信息
例如:假設我有一個列出汽車製造商(奧迪,寶馬,本田等)的表。現在我想讓它每行都是可點擊的。點擊某一行時,會彈出一個模型列表(本田雅閣,思域,CR-V等)。
<tr onclick="someAjaxFunction('manufacturerId')">
<td>Audi</td>
</tr>
<tr onclick="someAjaxFunction('manufacturerId')">
<td>BMW</td>
</tr>
我們層上難度層:
會如下這一最佳解決。說在彈出的框中有一個按鈕,說「添加模型」。您點擊該按鈕,現在該框會刷新以顯示您輸入新車型的表單。您點擊保存,現在該框會刷新,以顯示新的項目列表。
現在讓我們說我們只希望允許具有某些權限的用戶添加新模型。現在,模式彈出窗口變得更加動態,因爲它必須確定用戶是否應該看到「添加新」按鈕。這是否意味着我們需要將用戶的ID從一個盒子傳遞到下一個盒子?
<tr onclick="someAjaxFunction('manufacturerId', 'userId')">
<td>Audi</td>
</tr>
<tr onclick="someAjaxFunction('manufacturerId', 'userId')">
<td>BMW</td>
</tr>
但是現在一個技術精明的人可以簡單地改變onclick事件中的userId並且能夠做他們不應該做的事情。
問題:你如何在不同的模態屏幕之間來回傳遞動態信息?你是否通過創建越來越多的JavaScript函數來完成與上述相同的事情,這些函數採用各種參數並將它們放入onclick事件中?
(無jQuery,請。)
您需要在服務器上使用會話變量來跟蹤用戶ID,而不是從瀏覽器發送它。 – Barmar
而不是在函數中傳遞大量參數,您可以嘗試使用一個對象,以便您可以通過屬性名稱而不是長位置參數列表引用選項。或者使用'data-XXX'屬性來保存每個對象的細節,並且傳遞'this'作爲唯一的參數。 – Barmar