第二个提交按钮与PHP外的一个表单

Second submit button with PHP outside of a form

本文关键字:一个 表单 按钮 提交 PHP 第二个      更新时间:2023-09-26

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

我想在表单外添加一个提交按钮,这样当我们有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个表单,我需要将folder_name与字段分开,当我运行咨询时,我失去了对folder_name的访问权限。

有人能帮忙吗?提前谢谢你。


:

<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>

当我运行search -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. empty -表示表单未提交
  2. "管理咨询"
  3. ' find files '

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

Javascript + Ajax解决方案:

我不打算给你代码,而是告诉你这包括哪些步骤:

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

这些是步骤。您可以使用纯Javascript或使用任何Javascript库(如jQuery)来完成此操作。