Javascript Bootstrap4表单中通过AJAX发布PHP文章的问题

Javascript Bootstrap4表单中通过AJAX发布PHP文章的问题,javascript,php,ajax,email,dropdown,Javascript,Php,Ajax,Email,Dropdown,我正在为一个客户开发一个网站,该网站基于免费的bootsrap4模板,名为“代理”。它们还提供了一个使用标准引导表单的简单联系表单,该表单将数据发送到.js文件进行预处理,然后将消息发布(使用AJAX调用)到实际发送邮件的服务器PHP脚本 我的问题是:除了下拉元素中的条目之外,所有表单数据都被发送。 一个下拉列表示例: <label for="adults">Erwachsene</label> <select name="adults" class="form

我正在为一个客户开发一个网站,该网站基于免费的bootsrap4模板,名为“代理”。它们还提供了一个使用标准引导表单的简单联系表单,该表单将数据发送到.js文件进行预处理,然后将消息发布(使用AJAX调用)到实际发送邮件的服务器PHP脚本

我的问题是:除了下拉元素中的条目之外,所有表单数据都被发送。

一个下拉列表示例:

 <label for="adults">Erwachsene</label>
 <select name="adults" class="form-control" id="adults">
    <option value="keine">0</option>
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
 </select>
  • php文件只执行以下操作:
    $name=htmlspecialchars($\u POST[“name”])并将其放入邮件正文中
  • 我收到邮件,所有的“非下拉”元素都在那里
  • console.log()和浏览器对下拉列表值的访问就像一个符咒,因此不应该出现愚蠢的语法错误或任何错误(在ajax调用之前,还尝试了
    .toString()
    每个字段)
  • 因此,我不确定错误发生在哪里,问题是什么,也许有人经历过类似的情况,并给了我一个提示

    提前谢谢

    注释中建议的解决方案:使用getElementById()。 我刚刚做了一个函数来获取下拉值:

    function getDDValue(id) {
      let dropdown = document.getElementById(id);
      return dropdown ? dropdown.options[dropdown.selectedIndex].value : id + " nicht gefunden!";
    }
    
    // the call
    let adults_value = getDDValue('adults');
    ```
    

    要获取所选值,应从选项中选择它

    // get select box object
    var adultsSelectBox = document.getElementById("adults");
    
    // get selected option value
    var adults = adultsSelectBox.options[adultsSelectBox.selectedIndex].value;
    
    // get selected option text
    var adultsText = adultsSelectBox.options[adultsSelectBox.selectedIndex].text;
    
    
    console.log(adults);
    
    // ...
    // then ajax request etc..
    

    显示下拉元素。
    document.getElementById(#inputID).value
    是下拉值吗?@JayBlanchard谢谢!抱歉,忘记添加它-已编辑post@devpro是的,它类似于jQuery的.val()——正如我在文章中通过浏览器控制台和脚本(例如console.log())所写的那样,一切都按照我的预期工作it@J.Cole根据要求,请提供完整的ajax调用以及PHP代码。此外,请检查浏览器的网络检查器,查看请求中显示的值。谢谢我已经试过了,不幸的是,这并不能解决我的问题。我只是用几个值来测试它,但它不起作用——但后来我检查了所有的下拉列表,它起作用了谢谢
    // get select box object
    var adultsSelectBox = document.getElementById("adults");
    
    // get selected option value
    var adults = adultsSelectBox.options[adultsSelectBox.selectedIndex].value;
    
    // get selected option text
    var adultsText = adultsSelectBox.options[adultsSelectBox.selectedIndex].text;
    
    
    console.log(adults);
    
    // ...
    // then ajax request etc..