1

選択した値を投稿して、変数が空かどうかを確認しようとしました。

html:

<select id="monitors-old" class="form-control" name="monitors-old">
   <option value="">Auswählen...</option>
   <option value="0" <?php if ($personData["cmo_mon"] == "0"){echo 'selected';}?>>0</option>
   <option value="1" <?php if ($personData["cmo_mon"] == "1"){echo 'selected';}?>>1</option>
   <option value="2" <?php if ($personData["cmo_mon"] == "2"){echo 'selected';}?>>2</option>
   <option value="3" <?php if ($personData["cmo_mon"] == "3"){echo 'selected';}?>>3</option>
   <option value="4" <?php if ($personData["cmo_mon"] == "4"){echo 'selected';}?>>4</option>
</select>

結果のhtml:

<select id="monitors-old" class="form-control" name="monitors-old">
   <option value="">Auswählen...</option>
   <option value="0" selected="">0</option>
   <option value="1">1</option>
   <option value="2">2</option>
   <option value="3">3</option>
   <option value="4">4</option>
</select>

ポストチェック:

if (empty($_POST["monitors-old"])) {
   $errors[] = "Alt-Monitore is required.";
   die;
} else {
   $monitors_old = validateInput($_POST["monitors-old"]);
}

値 0 は常に空であり、スクリプトはサイコロを発射し、他のすべての値は機能しています。値 0 は "" のようなものですか?

また試しました:

<select id="monitors-old" class="form-control" name="monitors-old">
   <option>Auswählen...</option>
   <option selected="">0</option>
   <option>1</option>
   <option>2</option>
   <option>3</option>
   <option>4</option>
</select>

これも機能していますが、同じ問題です。もう 1 つの質問ですが、選択したものが ="" に割り当てられるのはなぜですか? この値が選択されているのはhtmlのタグだけだと思いましたか?

検証入力:

function validateInput($value) {
    $value = trim($value);
    $value = stripslashes($value);
    $value = htmlspecialchars($value);
    return $value;
}
4

1 に答える 1

5

値が 0の場合、empty()関数は戻ります。TRUE

そのため、チェックにはisset()関数と操作を使用する必要があります!=

if(isset($_POST["monitors-old"]) and $_POST["monitors-old"]!=''){
    // code here
}
else{
    // code here
}
于 2014-02-11T11:44:09.310 に答える