猿问

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

我<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="">


慕慕森
浏览 183回答 2
2回答

小唯快跑啊

您的表单有一个选择输入并设置为使用POST. 当它提交时,PHP 会显示你在值中选择了什么 $_POST["Country"]您的第一个选项缺少一个值 - 所以如果提交了它,它可能不会显示为好像他们回答了它。我建议添加,value=""以便它将在 中POST,您可以验证是否选择了一个选项。此外,您需要一个提交按钮。<form action="/select_country" method="post" ><select name="Country" class="country-selection">&nbsp; &nbsp; <option value="" required="" selected="" disabled="" style="color: #b5b5be;">Country Location</option>&nbsp; &nbsp; <option value="1" >Asia</option>&nbsp; &nbsp; <option value="2" >Australia</option>&nbsp; &nbsp; <option value="3" >United States</option>&nbsp; &nbsp; <option value="4" >Europe</option></select><input type="submit"></form>然后:<?php&nbsp;if (isset($_POST["Country"]) {&nbsp; &nbsp; if ($_POST["Country"] == "") {&nbsp; &nbsp; &nbsp; &nbsp; // error you must select an option&nbsp; &nbsp; }&nbsp; &nbsp; //other validation here but this should be 1,2,3 or 4&nbsp; &nbsp; // keep in mind anyone can mess with the form and submit other things maliciously so do validate}

慕莱坞森

您应该使用,$_POST["Your Input item Name Here"]因为您的表单使用的是POSTmethod 而不是GET.保持 Html 不变,请尝试以下操作://your name attribute = "Country" for select elementif (isset($_POST["Country"])) {&nbsp; &nbsp; return $_POST["Country"];}
随时随地看视频慕课网APP
我要回答