Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP在单选按钮中进行必填字段验证_Php_Validation_Radio - Fatal编程技术网

使用PHP在单选按钮中进行必填字段验证

使用PHP在单选按钮中进行必填字段验证,php,validation,radio,Php,Validation,Radio,我正在尝试将必需的字段验证添加到有5个同名单选按钮的页面中。如果用户单击按钮进入下一页,将显示一个错误,下面是我当前使用的代码,但它没有执行任何操作 <?php if (empty($_POST) === false) { $required_fields = array('q1'); foreach($_POST as $key=>$value) { if (empty($value) && in_array($key, $required_fields) ===

我正在尝试将必需的字段验证添加到有5个同名单选按钮的页面中。如果用户单击按钮进入下一页,将显示一个错误,下面是我当前使用的代码,但它没有执行任何操作

<?php
if (empty($_POST) === false) {
$required_fields = array('q1');
foreach($_POST as $key=>$value) {
if (empty($value) && in_array($key, $required_fields) === true) {
    $errors[] = 'Please select a number between 1-5';
    break 1;
    }
}
if (empty($errors) === true) {
    if(!isset($_POST['q1'])){ 
    $errors[] = "Please select a number between 1-5"; 
} 

}
}
?>      

<h1>Assessment</h1>

<?php
if (isset($_GET['success']) && empty($_GET['success'])) {

} else {
if (empty($_POST) === false && empty($errors) === true) {
$updateassessment = array(
    'q1'                => $_POST['q1'],
);

updateassessment($updateassessment);
header ('Location: question2.php');
exit();

} else if(empty($errors) === false){
echo output_errors($errors);
}
?>

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

<p class="p1">
Question 1</p>
<p class="p4">
<?php
$result = mysql_query("SELECT * FROM traits WHERE Question = 'q1'");

while($row = mysql_fetch_array($result))
  {
  echo $row['fromtrait'] . ' - ' . $row['totrait'];
  echo "<br />";
  }


?></p>

<p class="p3">
<input type="radio" name="q1" value="1" />
1
<input type="radio" name="q1" value="2" />
2
<input type="radio" name="q1" value="3" />
3
<input type="radio" name="q1" value="4" />
4
<input type="radio" name="q1" value="5" />
5


</p><br><br>
  <input type="image" src="Images/image1.png" name="submit" align="right"/>
</form>

您必须将action=“”设置为action=“
”(在您的表单中),否则在用户提交表单后,PHP将不知道“去”哪里。文件名指的是php文件。

从本质上讲,php是一种低效的表单验证方法,因为任何php检查都必须重新加载页面。也许可以实现客户端解决方案,但如果不实现,请尝试一下,看看它是否符合您的要求

$required_fields = array('q1');
foreach ($required_fields as $field) {
    if (isset($_POST[$field]) && !empty($_POST[$field])) {
         echo $field." was set<br>\n";
    } else {
        echo "validation for $field failed!<br>\n";
    }
}
$required_fields=array('q1');
foreach($必填字段作为$字段){
if(设置($\u POST[$field])&&!空($\u POST[$field])){
echo$字段。“已设置
\n”; }否则{ echo“验证$field失败!
\n”; } }

还有。。。Javascript是一个选项吗?jquery ValidationEngine非常有用,它可以检查您的许多领域需求,并在提交表单之前进行验证,以减轻PHP进行检查的需求。

表单是什么样子的?编辑了上面的代码,以包含尝试过但未起作用的表单,确切的代码适用于文本框的其他页面,但不适用于单选按钮在这种情况下:/No也不适用:/I我知道这可能有点傻,但我没有看到它,直到我添加您现在发布的代码时继续下一页-1决不只使用客户端验证。您可以使用客户端验证使其更加用户友好,但永远不要依赖它!用户可以轻松绕过客户端验证。尝试添加此项只是为了测试它,但出现以下错误:[23-Apr-2013 00:27:56 UTC]PHP解析错误:语法错误,意外'[”在C:\xampp\htdocs\lr\question1.php中在线11@bestprogrammerintheworld...我并没有说只使用客户端验证,我建议如果他在页面重新加载之前正在寻找验证,他可能会考虑这一点,因为PHP在提交表单之前无法验证。谢谢您的投票表决。让foreach更新$required\u feld结尾的's',然后将$post改为$\u post。抱歉,这是因为我仍然在犯错误。将!empty([$field])改为!empty($\u post[$field])。草率回答..我的错。
$required_fields = array('q1');
foreach ($required_fields as $field) {
    if (isset($_POST[$field]) && !empty($_POST[$field])) {
         echo $field." was set<br>\n";
    } else {
        echo "validation for $field failed!<br>\n";
    }
}