繁体   English   中英

表单外部使用PHP的第二个提交按钮

[英]Second submit button with PHP outside of a form

我有一个带有2个必填字段和一个可选字段的表单。

我想在此表单之外添加一个提交按钮,以便当我们具有folder_name的值并单击它时,它将运行php并搜索该服务器下的所有文件:

<form name="runConsultation" method="post" action="">   
    <input type="text" name="folder_name">          
    <select name="files" size="3">
        <?php
            // pupulate the list with values found outside the form
        ?>
    <select>    
    <select name="category">
        <option value="">Select...</option>
        <option value="a">A</option>
        <option value="b">B</option>
    </select>  
    <input type="submit" name="run-consultation" value="RUN CONSULTATION">
</form>


  <input type="submit" name="find-files" value="FIND FILES">

我的问题是,不使用2种表格我不知道该怎么做。

如果我添加2个表格,则需要将栏目名称与字段中的分开,当我进行咨询时,我将无法访问栏目名称。

有人可以帮忙吗? 先感谢您。


范例

<form name="fileSearch" method="post" action="" >
        <input type="text" name="folder_nr">                                                                            
        <input type="submit" value="Search For Files" name="search-folder">                                                                                                 
</form> 


<form name="runConsultation" method="post" action="">                           
    <select name="files" size="3">
       <?php
        // building my list with the files found using the first form
       ?>   
     ...
    <input type="submit" name="run-consultation" value="Run Consultation">
</form>

当我运行seach-folder时,folder_number消失了。

只需将提交按钮放在表单中,然后检查是否单击了按钮

if (isset($_POST['find-files']) && $_POST['find-files']) {
    // find files..
}
else
{
    // run consulation
}

您可以仅使用PHP进行此操作,也可以添加一些javascript + Ajax。

干净的HTML和PHP解决方案:

在表单内放置2个提交按钮,它们的名称相同但值不同。

<form method="POST">

    <!-- code omitted on purpose -->

    <input type="submit" name="btnSubmit" value="RUN CONSULTATION" />
    <input type="submit" name="btnSubmit" value="FIND FILES" />
</form>

按下每个按钮将提交表格。 在服务器端,您可以通过检查$_POST['btnSubmit]来检查按下了哪个按钮。

该值可以是:

  1. 空-表示表单未提交
  2. “运行咨询”
  3. '查找文件'

根据获得的值,您可以首先显示表单(1),运行咨询(2),或者显示带有选择填充选项(3)的表单。

Javascript + Ajax解决方案:

我不会给您代码,而是告诉您这涉及什么步骤:

  1. 使用javascript,监视“查找文件”按钮上的click事件;
  2. 防止事件默认行为(即提交)
  3. 向服务器发出AJAX请求,然后发送folder_nr文本字段的值。
  4. 在服务器上,读取folder_nr并找到文件。 使用找到的文件返回数据
  5. (返回客户端)使用在步骤4中获得的数据构造选择选项。

这些是步骤。 您可以使用纯Javascript来执行此操作,也可以使用jQuery之类的任何JavaScript库。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM