簡體   English   中英

PHP-表單驗證-下拉菜單+注釋框

[英]Php - Form validation - drop down menu + comments box

在過去的幾個小時中,我一直在為學生編寫輸入表格。 我幾乎都用0個小杯來完成所有的工作,但是遇到一個小問題,我想不出一個解決方法。 我有一個下拉菜單,對此的驗證是:

 }
        if(empty($why) === true) {
            $errors[] = 'Please make sure to select the proper reasoning for your vistit today!';
    }

默認變量設置為空或只是value =“”(空)...

現在,我需要驗證的第二件事是,如果學生選擇“其他”選項,則需要他們在專門針對無法找到一般原因的學生的注釋框中至少插入10個字符,最多30個字符他們訪問經濟援助辦公室。 這就是我所擁有的(順便說一句不起作用):

if(isset($why) === Other) {
        $errors[] = 'Please add a comment explaining why you are visiting the office.';
}

因此,總的來說,我需要幫助寫一份確認書,如果學生選擇其他證明,則他或她必須在“評論框”中寫出一個簡短的摘要,說明他或她為何要訪問辦公室。

任何幫助將是可愛的。 謝謝。

假設“其他”字段的文本區域稱為$other

if(empty($why)){
  $errors[] = 'Please select a reason';
}elseif($why == 'Other' && empty($other)){
  $errors[] = 'You selected Other. Please enter a reason why';
}

由於您要設置最小和最大字符數,因此您的代碼可能需要比上面的代碼更詳細,但是您知道嗎?

順便說一句,我認為您沒有理由要使用===運算符而不是==運算符。 他們做完全相同的事情,但是===檢查它是否是同一類型,不確定這對您的腳本有什么好處。

對於if(isset($why) === Other)其他不應該用引號引起來,因為$ why將以文本形式返回下拉菜單選擇的值嗎?

因此, if(isset($why) === 'Other')假設“ Other”是下拉菜單的“ Other”選擇選項的名稱,則if(isset($why) === 'Other')應該可以工作。

編輯:再次查看代碼,您正在將isset()值與另一個var(其他)進行比較。 您希望像if(isset($why) && $why === 'Other')因此您可以檢查$ why是否已設置,並且它也等於文本“ Other” ===運算符還在檢查$ why和Other是否為同一類型,因此您應檢查其余代碼以確保$ whyOther為同一類型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM