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