2

フォームを検証したいので、すべてのフィールドが必須です。フィールドが挿入されていないか空白のままの場合、送信後にエラー メッセージが表示されます。誰でも助けてもらえますか?

<html>  
<head>  
<title>Form Input Data</title> 
</head>
<table>  
<body><table border="1">
<table bgcolor="lightblue"></body>

     <form method="post" action="insert_ac.php"> 
    <br>
<tr><td align="left"><strong>Nurse Information</strong></td></tr>
<tr>
<td><font color="red">Please select your name</font></td>
</tr>
<tr>
<td>Fullname</td>
<td><select name="valuelist">;
<option value="valuelist" name="nurse_name" value='<?php echo $nurse_name;  ?>'></option>
<?php
$value=$_POST ["valuelist"];
$con = mysql_connect("localhost","root","") or die('Could not connect:'.mysql_error());
mysql_select_db("a&e", $con) or die('Could not select database.');

$fetch_nurse_name = mysql_query("SELECT DISTINCT Fullname FROM nurse");

while($throw_nurse_name = mysql_fetch_array($fetch_nurse_name)) {
echo '<option   value=\"'.$throw_nurse_name[0].'">'.$throw_nurse_name[0].'</option>';
 }
 echo "</select>";

?>
</td>
</tr>
<tr>
<td>Please register name here:</td>
<tr>  

        <td>Fullname</td>

       <td><input type="text" name="nurse_forename" size="30"> </td>

     </tr>
 </tr>
4

7 に答える 7

4

私はこのようなことをします:

$req = ['field1', 'field2', 'field...'];
$status = true;
foreach ($req as $field) {
    if (empty($_POST[$field])) {
        echo 'Field ' . $field . ' is empty';
        $status = false;
    }
}
if ($status) {
    // ok
} else {
    // not okay!
}

$reqすべてのフィールド名を使用して配列()を作成し、それらをループします。すべてのフィールドをempty()チェックします(この関数のphpマニュアルを確認してください)。

これがより良い(そしてほとんど)正しいHTMLスニペットです...適切にインデントし、整形式のコードのHTMLチュートリアルを読んでください。あなたのHTMLは**です。

<?php

$value=$_POST["valuelist"];
$con = mysql_connect("localhost","root","") or die('Could not connect:'.mysql_error());
mysql_select_db("a&e", $con) or die('Could not select database.');

$fetch_nurse_name = mysql_query("SELECT DISTINCT Fullname FROM nurse");

?>
<html>
<head>
    <title>Form Input Data</title> 
</head>
<body>

    <form method="post" action="insert_ac.php"> 

    <table border="1" bgcolor="lightblue">
        <tr>
            <td align="left"><strong>Nurse Information</strong></td>
        </tr>
        <tr>
            <td><font color="red">Please select your name</font></td>
        </tr>
        <tr>
            <td>Fullname</td>
            <td>
                <select name="valuelist">
                    <option value="valuelist" value="<?php echo $nurse_name;  ?>"></option>
                    <?php

                    while($throw_nurse_name = mysql_fetch_array($fetch_nurse_name)) {
                        echo '<option value="'.$throw_nurse_name[0].'">'.$throw_nurse_name[0].'</option>';
                    }
                    ?>
                </select>
            </td>
        </tr>
        <tr>
            <td>Please register name here:</td>
        </tr>
        <tr>  
            <td>Fullname</td>
            <td><input type="text" name="nurse_forename" size="30"> </td>
        </tr>
    </table>
    </form>
</body>
</html>

指定されたフィールドが2つしかない場合は、次のようになります。

$status = false;
$name = '';

if (!empty($_POST['nurse_forename'])) {
    $name = $_POST['nurse_forename'];
    $status = true;

} elseif (!empty($_POST['valuelist'])) {
    $name = $_POST['valuelist'];
    $status = true;

} else {

    $status = false;
    // none of nurse_forname OR valuelist is filled
    // abort.
}
于 2013-02-16T21:48:35.543 に答える
1

何かのようなもの

foreach($_POST as $form_entry)
 if(empty($form_entry))
  echo 'you have to fill in all fields';
于 2013-02-16T21:46:56.430 に答える
1
   if (isset($_POST['variable']{0})) {
   echo 'I exist and I have at least one char!';
   else
   echo 'I dont exist or I have no chars!';

存在するかどうかをチェック$_POST['variable']し、少なくとも1つの文字があります。

于 2013-02-16T21:48:27.090 に答える
0

この方法で試してください:

if(empty($_POST['nurse_forename'])){
echo "Field Nurse-Forename is empty";
}

次のように確認することもできます。

if($_POST['nurse_forename']==""){
echo "Nurse-Forename is empty";
}

1つのコマンドですべてのフィールドをチェックすることはできません(1つ以上の空のフィールドを区別できないため)。OOPを使用してもう少しエレガントに行うこともできますが、上記の例で投稿したコードについては、そうする必要があると思います。

于 2013-02-16T21:47:56.990 に答える
0
<!DOCTYPE HTML>
<html>
<head>
<style>
.error {color: #FF0000;}
</style>
</head>
<body>

<?php
// define variables and set to empty values
$nameErr = $emailErr = $genderErr = $websiteErr = "";
$name = $email = $gender = $comment = $website = "";

if ($_SERVER["REQUEST_METHOD"] == "POST")
{

   if (empty($_POST["name"]))
     {$nameErr = "Name is required";}
   else
     {$name = test_input($_POST["name"]);}

   if (empty($_POST["email"]))
     {$emailErr = "Email is required";}
   else
     {$email = test_input($_POST["email"]);}

   if (empty($_POST["website"]))
     {$website = "";}
   else
     {$website = test_input($_POST["website"]);}

   if (empty($_POST["comment"]))
     {$comment = "";}
   else
     {$comment = test_input($_POST["comment"]);}

   if (empty($_POST["gender"]))
     {$genderErr = "Gender is required";}
   else
     {$gender = test_input($_POST["gender"]);}

}

function test_input($data)
{
     $data = trim($data);
     $data = stripslashes($data);
     $data = htmlspecialchars($data);
     return $data;
}
?>

<h2>PHP Form Validation Example</h2>
<p><span class="error">* required field.</span></p>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
   Name: <input type="text" name="name">
   <span class="error">* <?php echo $nameErr;?></span>
   <br><br>
   E-mail: <input type="text" name="email">
   <span class="error">* <?php echo $emailErr;?></span>
   <br><br>
   Website: <input type="text" name="website">
   <span class="error"><?php echo $websiteErr;?></span>
   <br><br>
   Comment: <textarea name="comment" rows="5" cols="40"></textarea>
   <br><br>
   Gender:
   <input type="radio" name="gender" value="female">Female
   <input type="radio" name="gender" value="male">Male
   <span class="error">* <?php echo $genderErr;?></span>
   <br><br>
   <input type="submit" name="submit" value="Submit">
</form>

<?php
echo "<h2>Your Input:</h2>";
echo $name;
echo "<br>";
echo $email;
echo "<br>";
echo $website;
echo "<br>";
echo $comment;
echo "<br>";
echo $gender;
?>

</body>
</html>
于 2013-10-16T12:48:17.733 に答える
0

if($_POST['valuelist'] == NULL or $_POST['nurse_forename'] == NULL){ die('empty'); }

未テスト。

于 2013-02-16T21:44:40.683 に答える
0

また、これを試すことができます。すべてのフォーム項目を検証しています。

if (isset ( $_POST ['submit_button_name'] )) {
    $validated = true;
    array_walk_recursive ( $_POST, function ($value, $key) {
        global $validated;
        if (! trim ( $value ))
            $validated = false;
    } );
    if ($validated) {
        // insert function and redirect
    } else {
        // print Your message
    }
}
// Your form 
于 2013-02-16T22:00:14.447 に答える