我的网页上有一个<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="">
答案 0 :(得分:2)
您应该使用$_POST["Your Input item Name Here"]
,因为您的表单使用的是POST
方法,而不是GET
。
按原样保留您的HTML,请尝试以下操作:
//your name attribute = "Country" for select element
if (isset($_POST["Country"])) {
return $_POST["Country"];
}
答案 1 :(得分:1)
您的表单具有选择输入,并设置为使用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
}