提问人:Anna Nguyen 提问时间:4/20/2019 更新时间:4/20/2019 访问量:1290
PHP - 如何验证选择选项服务器端?
PHP - How to validate select option server side?
问:
我有一个带有选项的表单,其中要求用户选择一个州。 我怎样才能用纯PHP在服务器端验证这一点?如果选择了“选择状态”选项,则服务器将返回“无效”。
谢谢!
我的 HTML 代码(摘要):
<select id="stateSel" name="state" onclick="stateValidation()">
<option value="0">Select State</option> /*will return as invalid option*/
<option value="AL">Alabama</option>
<option value="AK">Alaska</option>
<option value="AZ">Arizona</option>
/*[etc, options for each state]*/
<option value="WY">Wyoming</option>
</select>
答:
0赞
Naveed
4/20/2019
#1
提交表单时,仅选定选项的值将发布到服务器端。
如果您要提交带有方法的表格。POST
<?php
if( $_POST['state'] == "0" ) {
// not valid
}
?>
1赞
Zeusarm
4/20/2019
#2
你可以这样做:
<?php
$valudStates = ['AL', 'AK', 'AZ', 'AR', 'CA', 'CO', 'CT', 'DE', 'DC', 'FL', 'GA', 'HI',
'ID', 'IL', 'IN', 'IA', 'KS', 'KY', 'LA', 'ME', 'MD', 'MA', 'MI', 'MN',
'MS', 'MO', 'MT', 'NE', 'NV', 'NH', 'NJ', 'NM', 'NY', 'NC', 'ND', 'OH',
'OK', 'OR', 'PA', 'RI', 'SC', 'SD', 'TN', 'TX', 'UT', 'VT', 'VA', 'WA',
'WV', 'WI', 'WY'];
if (isset($_POST['state']) && in_array($_POST['state'], $valudStates)){
//code for valide state
} else {
//code for NOT valide state
}
在这里,代码不仅检查是否存在 post 字段,而且还与可能的值进行比较(在本例中为 US states)。state
0赞
M.Hemant
4/20/2019
#3
State 的默认值在加载时始终为 0,如果用户没有更改它,则需要像下面的代码一样进行验证
以下代码用于表单提交
<?php
if( $_POST['state'] == "0" ) {
echo "Please select the state field";
}else{
echo "Your selected state is ".$_POST['state'];//just for example purpose
}
die;
?>
或
以下代码用于 JS 函数
<select id="stateSel" name="state" onclick="stateValidation(this.id)">
<option value="0">Select State</option> /*will return as invalid option*/
<option value="AL">Alabama</option>
<option value="AK">Alaska</option>
<option value="AZ">Arizona</option>
<option value="WY">Wyoming</option>
</select>
function stateValidation(id){
var state = $('#'+id+'option:selected').val();
if(state == '0'){
alert("Please select the state field");
}else{
alert("Your selected state is "+state);
}
}
评论