2016-07-07 99 views
0

我在頁面上有服裝訂購表單。當我從下拉列表/菜單中選擇一個選項時,我想要將另一個窗體「換出」。 Ajax可能嗎? PHP include()?下拉菜單中的選項將選擇已經創建爲另一個目錄中模板的不同表單,並將其替換爲其他表單。更改爲下拉菜單選項上的不同表格

我只想一次顯示一個表單。謝謝! :)

+2

我的幫助:http://stackoverflow.com/questions/3675006/how-to-switch-choose-between-html-forms – AkshayP

+0

@AshkayP謝謝,我看到一個正在測試它,但會那樣爲20個表單工作? 50表格?我們有很多風格。在一頁上隱藏多個表單是否存在問題? – Bigfootbud

回答

0

如果可以的話,不要放太多隱藏表格。這只是糟糕的設計,特別是在性能方面。最好的辦法是:

  • 裏面每個
  • 形式創建一些PHP文件使用一個AJAX請求溝通,如果條件滿足

如果您喜歡在餡起來的東西一個文件嘗試通過一個獨特的參數與AJAX的PHP文件和檢查其值,以決定加載哪個表格

var xhr = new XMLhttpRequest(); 
    formID = (condition) ? 1 : 2; // etc 

    //^^ This one line above means: 
    if (condition) { 
     formID = 1; 
    } 
    else { 
     formID = 2; 
    } 

... 

// GET request 
xhr.open("GET", "forms.php?formID=" + formID); 

// POST request 
xhr.send("formID=" + formID); 

在PHP

<?php 
    if (isset($_POST["formID"]) && $_POST["formID"] === 1): 
?> 
     <form id = "1"></form> 
<?php 
    else: 
?> 
     <form id = "2"></form> 
<?php 
    endif; 
?> 

[編輯]

如果要在不同的文件中的每個形式則以上代碼將爲:

<form>...</form> // No PHP necessary 

在JavaScript中使用xhttp.send("")沒有把任何值(只有當形式在不同的文件)。

+0

我是一個初學者,所以你的代碼對我來說有點模糊。你是說我可以爲每個表單創建一個模板並使用AJAX將任何選定的模板渲染到頁面上?確切地說,是 – Bigfootbud

+0

。像我一樣,創建兩個表單並將它們放在'if語句'中,以便PHP決定要呈現哪一個表單。 PHP將根據您通過AJAX請求發送給它的數據決定要渲染哪一個。它可以是任何東西,但爲了簡單起見,我使用了數字「1」和「2」。 –

+0

另外,如果你還不知道,'isset()'檢查是否存在。因此,如果isset($ _ POST [「formID」])檢查PHP是否從AJAX收到數據。然後我們檢查它的值以決定顯示哪個表單。 –