【问题标题】:Adding error message when a specific drop down option is selected选择特定下拉选项时添加错误消息
【发布时间】:2014-08-28 13:42:59
【问题描述】:

好的,伙计们,我进行了一些研究,但找不到可以解决我的问题的方法,尽管我确信这是一个简单的解决方法 :)

我有一个简单的联系表格,其中第一行是一个下拉选项。此下拉列表确定表单提交给哪个员工。我只想让我的默认选项“请选择类别”返回一条错误消息,以便提交者必须返回并选择其中一个选项以发送表单。当没有选择任何内容时,它会为默认电子邮件创建大量垃圾邮件。

下面是下拉代码:

                <tr>
            <td><label for="sendTo">Category (required):</label></td>
            <td>
                <select id="sendTo" name="sendTo">
                    <option id="pleaseSelectcategory1" value="pleaseSelectcategory1">Please Select Category</option>
                    <option id="aftermarketCustomerservice" value="aftermarketCustomerservice">Aftermarket Customer Service</option>
                    <option id="technicalAssistance" value="technicalAssistance">Technical Assistance</option>
                    <option id="aftermarketSales" value="aftermarketSales">Aftermarket Sales</option>
                    <option id="performanceProducts" value="performanceProducts">Performance Products & Sales</option>
                    <option id="oemSales" value="oemSales">OEM Sales</option>
                    <option id="exportSales" value="exportSales">Export Sales</option>
                    <option id="generalFeedback" value="generalFeedback">General Feedback</option>
                </select>
            </td>
            </tr>

我只需要在我的 html 中放入什么(如果有的话),以使此错误消息出现在我的 php 文件中。提前致谢!!

【问题讨论】:

  • if($_POST['sendTo'] == "pleaseSelectcategory1"){ // }
  • 使用 Javascript 来处理这将避免无用的服务器交换。只需谷歌“使用 javascript 进行表单验证”。 (这并不意味着稍后再次检查服务器端不好)
  • @Fred-ii- 这似乎停止了电子邮件,但我如何提醒人们选择该类别以使其正确发送?
  • @ClémentMalet - 添加了这一点,没有任何反应
  • @KJones if($_POST['sendTo'] == "pleaseSelectcategory1"){ echo "Choose a category"; exit; } 如果需要,您也可以在其中添加链接。但是 JS 的混合会是一个不错的选择。你也可以看看 Ajax。

标签: php forms drop-down-menu contact


【解决方案1】:

您应该在发布数据之前使用 Javascript 函数来验证您的表单。这对 UX 来说更好,并且会阻止表单甚至到达 PHP 发布功能。

在您的表单中有 onsubmit 字段调用 Javascript 函数:

<form name="form" id="form" action="" onsubmit="return validateForm()" method="POST">

以及用于检查选择框值的 Javascript 函数:

// Basic form validation for select box.
function validateForm() {
    if (document.getElementById("sendTo").value != null && docmument.getElementById("sendTo").value != "pleaseSelectcategory1") {
        return true;
    }

    //Handle error message here.
    alert("Please select a category");
    return false;
}

您还可以在表单在 PHP 中发布后验证您的表单:

if ($_POST['sendTo'] === 'pleaseSelectcategory1') {
    // Redirect back to form or do whatever
}

【讨论】:

  • 我添加了所有这些位,但发送的表单仍然选择了“请选择类别”字段并进入我的邮件。我错过了一些东西:|
  • 通过将alert(document.getElementById("sendTo").value); 放在validateForm() 中的 if 语句正上方来检查您的 Javascript 函数是否被调用,并查看 1. 函数正在被调用,2. 选择框中的值正在正确检索。
【解决方案2】:

在纯 JavaScript 中,您可以使用以下函数:

function checkCategory(){
  if(document.getElementById('sendTo').value === 'pleaseSelectcategory1') {
    alert("You need to select category");
    //This is to ensure that the form doesn't get submitted.
    return false;
  }
}

在按钮上使用onclick="javascript:checkCategory();" 或在表单本身上使用onsubmit="javascript:checkCategory();"

在 PHP 中你可以使用:

if($_POST['sendTo'] == "pleaseSelectcategory1")
{ 
  //However you want to handle the the fact the user selected the option
}

【讨论】:

    猜你喜欢
    • 2014-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-17
    • 1970-01-01
    • 2012-08-29
    • 1970-01-01
    相关资源
    最近更新 更多