2016-07-07 91 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收到数据。然后我们检查它的值以决定显示哪个表单。 –