2013-11-20 18 views
0

我有一個情況,我希望一個選擇框更改基於另一個選擇框中選定的選項。jQuery的Ajax PHP的數組傳輸在WordPress的主題

HTML可以去:

<select name="gender-select" id="gender-select"> 
    <option value="girls">girls</option> 
    <option value="boys">boys</option> 
</select> 

<select name="names" id="names"> 
    <option value="">Marie</option> 
    <option value="">Rachael</option> 
    <option value="">Lis</option> 
</select> 

因此,所有的名字將被存儲在SQL數據庫中。讓我們假設總共存儲了10個名字。

然後,當選擇「男孩」選項時,數據庫應該查找數據庫中的所有男孩名字,並將它們作爲選項提供。

我知道我會使用AJAX來做到這一點,並且我有一個這樣做的設置,可以做成功的請求。我的問題是,我需要將名稱數組傳遞給處理數據的函數,然後再將其發送回javascript。

林在WordPress這樣做,並且過程即時通訊思想會是這樣的(IM肯定必須有一個更好的辦法 - 如果不是怎麼會這樣做?):

  1. 在模板PHP將通過自定義循環構建一個數組。
  2. javascript會將該數組的參數設置爲「boys」,並在選擇更改時將數組和參數傳遞給functions.php
  3. function.php然後會做它的事情,找到所有男孩的名字,並且然後把這些回JavaScript,然後
  4. JS將顯示新選項

對我來說,這似乎是愚蠢的轉換PHP - > JS - > PHP - > JS

只是數組排序異步。

我在這裏失蹤了什麼?

+0

爲什麼不呈現按性別組織的姓名選擇,然後在變更時顯示/隱藏適當的選擇?這將消除每次查詢服務器的需要。 – maiorano84

+0

,因爲會有多於2個。可能大約有50個選項 - 顯然我的情況不是性別/名稱相關 - 這僅僅是問題的一個例子 –

+0

我認爲它不僅取決於數據庫的大小表您正在查詢的表格,也是您通常期望從用戶那裏獲得的用法。在每次更改時通過AJAX查詢數據庫是可行的選擇,但根據使用情況可能會變得昂貴。使用較小的表格和有限的選項,您可以實現我提到的顯示/隱藏功能。使用較大的表格時,可以將每個查詢的結果緩存到本地Javascript變量,以便重複查詢不被服務器執行。 – maiorano84

回答