第二个提交按钮,PHP在表单之外

时间:2014-07-10 11:18:37

标签: javascript php forms post

我有一个包含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个表单,我需要将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>

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

您只能使用PHP执行此操作,或者您可以添加一些javascript + Ajax。

清洁HTML&amp; 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. &#39;运行咨询&#39;
  3. &#39;查找文件&#39;
  4. 根据您获得的值,您可以最初显示表单(1),运行咨询(2),或使用选项填充选项(3)显示表单。

    Javascript + Ajax解决方案:

    我不会给你代码,而是告诉你这涉及的步骤:

    1. 使用javascript,监控click事件&#34;查找文件&#34;按钮;
    2. 防止事件默认行为(即提交)
    3. 向服务器发出AJAX请求并发送folder_nr文本字段的值。
    4. 在服务器上,读取folder_nr并查找文件。使用找到的文件返回数据
    5. (返回客户端)使用您在步骤4中获得的数据构建选择选项。
    6. 这些是步骤。您可以使用普通的Javascript执行此操作,或者您可以使用任何javascript库,如jQuery。