为了账号安全,请及时绑定邮箱和手机立即绑定

为什么 HTML 选择返回随机字符串?

为什么 HTML 选择返回随机字符串?

PHP
慕慕森 2021-07-01 17:01:14
我<select>在我的网页上有一个表单,其中包含4个选项,其中值1到4,选择一个选项时,表单应该返回其中一个数字,但它返回6个随机字符。该页面不包含任何 JavaScript,它在我的本地网络上运行,我还在浏览器上禁用了 JavaScript。我用来检索值的 PHP 如下:if (isset($_POST[$key])) {    return $_POST[$key];}我删除了任何形式的验证,我只是简单地检索值,$_POST如果设置它会打印出 6 个随机字符(每次我提交表单时)。表格如下:<form action="/select_country" method="post" ><select name="Country" class="country-selection">    <option required="" selected="" disabled="" style="color: #b5b5be;">Country Location</option>    <option value="1" >Asia</option>    <option value="2" >Australia</option>    <option value="3" >United States</option>    <option value="4" >Europe</option></select></form>预期结果:1或2或3或4实际结果:czWe8m或alBwKD等等......编辑:这$_GET是一个错字,抱歉。更正。我正在使用相同的 PHP 代码从同一个表单中检索其他输入数据,其他标签是简单的文本和数字<input>,它们工作得很好:<input name="Title" type="text" placeholder="Insert Title" maxlength="100" required=""><input name="Description" style="width:100%" type="text" placeholder="Insert Description" maxlength="1000" required="">
查看完整描述

2 回答

?
小唯快跑啊

TA贡献1863条经验 获得超2个赞

您的表单有一个选择输入并设置为使用POST. 当它提交时,PHP 会显示你在值中选择了什么 $_POST["Country"]


您的第一个选项缺少一个值 - 所以如果提交了它,它可能不会显示为好像他们回答了它。我建议添加,value=""以便它将在 中POST,您可以验证是否选择了一个选项。此外,您需要一个提交按钮。


<form action="/select_country" method="post" >

<select name="Country" class="country-selection">

    <option value="" required="" selected="" disabled="" style="color: #b5b5be;">Country Location</option>

    <option value="1" >Asia</option>

    <option value="2" >Australia</option>

    <option value="3" >United States</option>

    <option value="4" >Europe</option>

</select>

<input type="submit">

</form>

然后:


<?php 

if (isset($_POST["Country"]) {

    if ($_POST["Country"] == "") {

        // error you must select an option

    }

    //other validation here but this should be 1,2,3 or 4

    // keep in mind anyone can mess with the form and submit other things maliciously so do validate


}


查看完整回答
反对 回复 2021-07-09
?
慕莱坞森

TA贡献1810条经验 获得超4个赞

您应该使用,$_POST["Your Input item Name Here"]因为您的表单使用的是POSTmethod 而不是GET.


保持 Html 不变,请尝试以下操作:


//your name attribute = "Country" for select element

if (isset($_POST["Country"])) {

    return $_POST["Country"];

}


查看完整回答
反对 回复 2021-07-09
  • 2 回答
  • 0 关注
  • 182 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信