2012-07-20 5 views
0

Это нормально, чтобы иметь форму с большим количеством кнопок отправки? Я имею в виду, я форма, которая содержит некоторые поля ввода и таблицу и 3 кнопки, которые будут экспортировать информацию в различных форматахHTML-формы лучшая практика

<form id="form1" name="form1" method="post" > 
    <label for="country"><strong>Countries: </strong></label><br /> 
    <select id="country" name="country"> 
     <?php 
     //some php code here 
     ?> 
    </select> 
    <br /> 
    <br/> 
    <label for="start_date"><strong>Start date: </strong></label><br /> 
    <input name="start_date" type="text" id="start_date" value="<?php if(!empty($start))echo $start; ?>" size="20" /> 
    <br /> 
    <br /> 
    <label for="stop_date"><strong>Stop date: </strong></label><br /> 
    <input name="stop_date" type="text" id="stop_date" value="<?php if(!empty($stop)) echo $stop; ?>" size="20" /> 
    <br /> 
    <br /> 
     <input type="submit" name="fill_table" value="Retrieve data" /> 

    <div id="table"> 
     <h1>&nbsp;</h1> 
     <hr /> 
     <h2>Sales Report</h2> 
     <table class="display" id="data_table" > 
      <thead> 
       <tr> 
       <th>Product</th> 
       <th>Date</th> 
       <th>Quantity</th> 
       </tr> 
      </thead> 
      <tbody> 
      <?php 
       //some php code here 
      ?> 
      </tbody> 
     </table> 
     <br /> 
     <br /> 
     <br /> 
     <input type="submit" class="button" name="export_xls" value="Export xls" /> 
     <input style="margin-left:10px;" type="submit" name="export_html" value="Export html" /> 
    </form> 

Это нормально, чтобы сделать это таким образом, или я должен сделать 3 формы каждый один с определенной кнопкой отправки? Каждый раз, когда я нажимаю кнопку отправки, меня интересуют поля ввода: start_date, stop_date и выбранный элемент из «страны». P.S. Я хочу знать, оптимально ли это и как другие программисты будут обрабатывать этот материал.

ответ

1

Я не думаю, что это плохая идея. Но все ваши кнопки отправки должны иметь одинаковый атрибут имени.

Заканчивать this

+0

он работает, даже если я не использую тот же атрибут «имя», но я думаю, что этот способ более уместен. – NiCU

+0

Это можно сделать так, но я думаю, что выбор «формата» - лучшая идея. – NoZip

1

Да, вы можете иметь больше кнопок отправки в одной форме. Поскольку вы используете php для обработки поданной формы, я бы не поместил одно и то же имя для каждой кнопки отправки, поскольку предлагал @NoZip, но другой вместо этого, так что тогда в части обработки PHP-кода я бы спросил:

<?php 
    if (isset($_POST["submitButtonName1"])) 
     some code here... 
    else if (isset($_POST["submitButtonName2"])) 
     some other code here... 
    else 
     code logic for no submit button clicked 
?> 
+0

Какая польза от использования разных имен над одним именем и разными значениями? – Dpolehonski

+1

@Dpolehonski: Я не знаю, какая польза (если есть) в других языках программирования, но я имел в виду язык PHP. Как бы вы проверили, была ли нажата какая-либо кнопка на PHP, если вы не даете им разные атрибуты 'name'? – Nikola

+0

вы сравниваете значение представленного «имени» как 'if 'bsubmit" == "opt1" // делаем что-то, если "bsubmit" == "opt2" // делать что-то еще ' – NiCU

1

Я только что закончил систему, в которой вы записали записи данных cna, одна из функций, которые я использовал, заключалась в использовании mulitple submits, чтобы позволить пользователю «штамповать» обновление различными параметрами. например, «активный», «ожидающий», «отключить». Он сохранил раскрывающийся список нескольких опций и обеспечил интуитивную систему.

Несколько кнопок отправки с различными значениями позволяют вам отправить форму с полем отправки, имеющим одно из многих значений, и может встраивать пользовательский интерфейс. Плюс, его действительный HTML.

2

Основная проблема: что происходит, когда пользователь нажимает Enter в текстовом поле ввода? В большинстве браузеров данные формы отправляются, но это соответствует нажатию одной из кнопок, а какая? См. вопрос Multiple submit buttons in an HTML form.

Было бы безопаснее иметь только одну кнопку отправки для каждой формы. (Однако было бы безопасно добавлять кнопки отправки с идентичной функциональностью в длинную форму для удобства пользователя.) Это означает, что пользователь будет выбирать между альтернативами (например, выходными форматами) с помощью переключателей или меню выбора, а не путем выбора между кнопками. Однако это не всегда практично.

Смежные вопросы