Как вернуть соответствующее значение при выборе множественного выбора для формы?

Я создаю страницу обратной связи, которая просит пользователя выбрать, что он думает о своей тренировке. Они могут оценить обслуживание как «Отлично», «Хорошо» или «Плохо». Я видел некоторые подобные вопросы, которые касаются только того, если что-то было проверено, и в этом случае было сказано, что он объявляет явное значение. который, я думаю, мог бы работать для ответа «да». Но как насчет того, когда у вас есть несколько вариантов?

Не уверен, где мой сценарий VB неверен.

почтовые программы/training_feedback_send.asp

<html>
<head>
<%
Sub ProcessContact
  Response.Buffer = true    
  dim gRating, gTrainerKnowledgeable, gNotKnowl, gTrainingExperience, gTrainingMaterials, gRateUI, gTs150Perform, gTs150NonPerformReason, gRestorationsAttempted, gRestorationsSuccessful, gRestorationsUnsuccessful, gFeatureChange, gFutureUpdates, gPurchasingMotivation, gAdditionalQuestions, gContactRequest, gFullName, gEmail

  gRating = Request.Form("Rating")
  gTrainerKnowledgeable = Request.Form("TrainerKnowledgeable")
  gNotKnowl = Request.Form("gNotKnowl")
  gTrainingExperience = Request.Form("TrainingExperience")
  gTrainingMaterials = Request.Form("TrainingMaterials")    
  gRateUI = Request.Form("RateUI")
  gTs150Perform = Request.Form("Ts150Perform")
  gTs150NonPerformReason = Request.Form("Ts150Perform")
  gRestorationsAttempted = Request.Form("RestorationsAttempted")
  gRestorationsSuccessful = Request.Form("RestorationsSuccessful")
  gRestorationsUnsuccessful = Request.Form("RestorationsUnsuccessful")  
  gFeatureChange = Request.Form("FeatureChange")
  gFutureUpdates = Request.Form("FutureUpdates")
  gPurchasingMotivation = Request.Form("PurchasingMotivation")
  gAdditionalQuestions = Request.Form("AdditionalQuestions")
  gContactRequest = Request.Form("ContactRequest")

  gFullName = Request.Form("FullName")
  gEmailAddress = Request.Form("EmailAddress")


  msg = msg & "How would you rate the overall effectiveness of the on-site training?: " & gRating & chr(10)& chr(13)

  msg = msg & "Did you feel that the trainer was knowledgeable on the product and answered your questions to your satisfaction? If not, explain why: " & gTrainerKnowledgeable & chr(10)& chr(13)

  msg = msg & "Did you feel that the trainer was knowledgeable on the product and answered your questions to your satisfaction? If not, explain why: " & gNotKnowl & chr(10)& chr(13)

  msg = msg & "How would you rate your training experience on a scale of 1 - 5, where 1 is poor and 5 is excellent?: " & gTrainingExperience & chr(10)& chr(13)

  msg = msg & "Do you find the published training materials helpful?(quickstart guide, tutorials, etc.): " & gTrainingMaterials & chr(10)& chr(13)

  msg = msg & "How would you rate the user interface (GUI) in terms of ease of use and clarity of information?: " & gRateUI& chr(10)& chr(13)

  msg = msg & "Does the TS-150 perform as you anticipated? " & gTs150Perform & chr(10)& chr(13) 

  msg = msg & "If not, in what way is the performance different?: " & gTs150NonPerformReason & chr(10)& chr(13) 

  msg = msg & "How many restorations have you attempted?: " & gRestorationsAttempted & chr(10)& chr(13)

  msg = msg & "How many were successful?: " & gRestorationsSuccessful & chr(10)& chr(13)

  msg = msg & "Please describe the problems on any unsuccessful restorations. For example, did they fail to mill? Did they not seat well? Were there problems with the material?: " & gRestorationsUnsuccessful & chr(10)& chr(13)

  msg = msg & "Are there any features of the TS150 that you would change? If so what would they be?: " & gFeatureChange & chr(10)& chr(13)

  msg = msg & "What features would you like to see in future updates to the design software and mill software?: " & gFutureUpdates & chr(10)& chr(13)

  msg = msg & "What was your primary motivation for purchasing IOS products?: " & gPurchasingMotivation & chr(10)& chr(13)

  msg = msg & "Do you have additional questions or would you like additional training?: " & gAdditionalQuestions & chr(10)& chr(13)

  msg = msg & "Would you like to be contacted as a follow-up to this survey?: " & gContactRequest & chr(10)& chr(13)

  msg = msg & "Full Name: " & gFullName & chr(10)& chr(13)
  msg = msg & "Email Address: " & gEmailAddress & chr(10)& chr(13)

pages/training-feedback.aspx

<form action="/mailers/training_feedback_send.asp" method="post" name="Form1" id="trainingFeedback">
  <fieldset>
      <legend>Training and Product Feedback</legend>

        <div class="row">

          <div class="twelve columns">
            <label>How would you rate the overall effectiveness of the on-site training?</label>
            <input type="radio" name="Rating" value="Excellent">Excellent<br>
            <input type="radio" name="Rating" value="Good">Good<br>
            <input type="radio" name="Rating" value="Poor">Poor<br>
          </div>

          <div class="twelve columns">
            <label>Did you feel that the trainer was knowledgeable on the product and answered your questions to your satisfaction? 
            <br>If not, explain why.</label>
            <input type="radio" name="TrainerKnowledgeable" value="yes"><span>Yes</span>
            <input type="radio" name="TrainerKnowledgeable" value="no"><span>No</span>
            <textarea id="gNotKnowl" name="gNotKnowl" class="twoLines" rows="2" placeholder="reason"></textarea>
          </div>

person JGallardo    schedule 30.11.2013    source источник
comment
В качестве примечания: если вы предоставляете своим пользователям 3 варианта выбора, от хорошего до плохого, я бы рекомендовал сделать средний вариант более нейтральным, например. Отлично/удовлетворительно/плохо. Выбор Отлично/Хорошо/Плохо является необъективным.   -  person Ansgar Wiechers    schedule 30.11.2013
comment
1. Вопрос «да/нет» тоже должен быть переключателем, а не флажком (вы не можете одновременно отвечать и «Да», и «Нет»). 2. Сценарий обработки формы запрашивает поле с именем TrainerKnowledgeable, но в форме такого поля нет — флажки называются checkbox1 и checkbox2.   -  person Martha    schedule 01.12.2013
comment
@Martha Вопрос «да/нет» обычно реализуется с помощью одного флажка, потому что его 2 состояния (отмечено/не отмечено) указывают либо да, либо нет. Использование переключателей просто потребует больше места в графическом интерфейсе, не предоставляя дополнительных преимуществ.   -  person Ansgar Wiechers    schedule 01.12.2013
comment
@Ansgar, посмотри на код ОП. У него есть флажок «Да» и флажок «Нет». Это неправильно, как ни посмотри. (Кроме того, может быть гораздо удобнее иметь переключатели «Да/Нет», потому что с флажком не всегда полностью интуитивно понятно, что «отмечено» = «да» и «не отмечено» = «нет».)   -  person Martha    schedule 01.12.2013
comment
@AnsgarWiechers, хорошо, поймите, что флажок должен быть переключателем. Я реализовал это и обновил код. К сожалению, для этого проекта у меня пока нет доступа к журналам сервера. В рабочей форме я прошу пользователя вручную ввести Y или N.   -  person JGallardo    schedule 03.12.2013


Ответы (2)


Вместо <input type="checkbox"> используйте тип ввода переключатель:

<input type="radio" name="Rating" value="Excellent" checked>Excellent<br>
<input type="radio" name="Rating" value="Good">Good<br>
<input type="radio" name="Rating" value="Poor">Poor<br>

Изменить: я добавил атрибут checked. Из приведенной выше ссылки:

Некоторые браузеры требуют, чтобы один переключатель в группе был всегда выбран. Чтобы гарантировать правильный выбор по умолчанию, авторы могут определить один из радиоэлементов INPUT как CHECKED.

person DavidRR    schedule 30.11.2013
comment
Спасибо, я реализовал это. И попытался настроить VBScript, но, похоже, в этой части все еще что-то не хватает. - person JGallardo; 30.11.2013
comment
Хм, см. тему Переключатели в разделе HTML-формы в W3Schools. Вы видите переключатели в браузере? - person DavidRR; 30.11.2013
comment
Да, я вижу радиокнопки. Я имел в виду не то, что мне не хватает этих элементов, а то, что я все еще получаю сообщение об ошибке, когда нажимаю кнопку «Отправить». спасибо, я тоже сейчас изучаю VBScript. - person JGallardo; 30.11.2013
comment
@JGallardo Вы ничего не упомянули об ошибке раньше. Пожалуйста, обновите свой вопрос, указав точный код ошибки и сообщение, а также строку, вызывающую ошибку. - person Ansgar Wiechers; 30.11.2013
comment
@JGallardo Ответ был предоставлен DavidRR, а не мной. - person Ansgar Wiechers; 03.12.2013
comment
@DavidRR Большое спасибо за вашу помощь!. У меня не было доступа к логам сервера и я разобрался по следам и ошибкам. Это было то, чего я не ожидал, но твой ответ все еще был частью головоломки. - person JGallardo; 03.12.2013

С моим первоначальным вопросом было несколько проблем. Поскольку существовало несколько вариантов выбора, когда одновременно можно было сделать только один выбор, необходимо было изменить <input type="checkbox" на <input type="radio". Необходимо было объявить значение, и я дал каждой опции id (хотя это может и не понадобиться). Вот что прошло успешно

pages/training-feedback.aspx

<input type="radio" name="Rating" id="RatingE" value="Excellent">Excellent<br>
<input type="radio" name="Rating" id="RatingG" value="Good">Good<br>
<input type="radio" name="Rating" id="RatingP" value="Poor">Poor<br>


В моем файле .asp я добавил следующее

почтовые программы/training_feedback_send.asp

dim gRating

gRating = Request.Form("Rating")

msg = msg & "How would you rate the overall effectiveness of the on-site training?: " & gRating & chr(10)& chr(13)


Вот что я получил по электронной почте

введите здесь описание изображения


Вышеизложенное должно касаться всех, кто пытается сделать что-то подобное. Однако следует отметить, что в отношении «ошибки сервера», которую я получал. Это было из-за того, как я объявил переменную для получения электронной почты в моем файле .asp. После жесткого кодирования переменной проблем не было.

objCDO.From = "[email protected]"

И это то, что теперь отображается в поле «от». Вы можете настроить свою собственную электронную почту в соответствии с вашими потребностями. Но я бы предложил описательное имя, например [email protected].

Над своим жестко закодированным электронным письмом я добавил следующее

msg = msg & "Email Address: " & gEmailAddress & chr(10)& chr(13)

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

objCDO.From = gEmailAddress

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

person JGallardo    schedule 03.12.2013