2013-10-21 77 views
0

在「聯繫我們」頁面的XHTML文檔中創建表單。如果加星標的表單未被填入/選中,則會顯示一條錯誤消息,並且它適用於除一個外的所有輸入框。表單錯誤信息不起作用

這是下拉形成錯誤消息不上工作:

<div class='container'> 
<label for='destemail' >Select department you're trying to reach: 
<font style="color:#f93; margin-left:-2px; ">*</font></label></br> 

<select name="destemail" id="destemail"> 
<?php foreach ($emailAddresses as $name => $email) { ?> 

<option value="<?php echo htmlspecialchars($destemail); ?>"> 
<?php echo htmlspecialchars($name) ; ?></option> 
<?php } ?> 
</select> 
<span id='contactus_destemail_errorloc' class='error'></span> 
</div> 

我每次測試的形式,無論是在這裏或不選擇一個部門的,錯誤的信息,那就說「請選擇一個部門。」我只需要這個來顯示一個部門沒有被選中。

這裏是PHP:

if(empty($_POST['destemail'])) 
{ 
    $this->add_error("Please select a department."); 
    $ret = false; 
    } 

這裏是JavaScript:

<script type='text/javascript'> 
// <![CDATA[ 

var frmvalidator = new Validator("contactus"); 
frmvalidator.EnableOnPageErrorDisplay(); 
frmvalidator.EnableMsgsTogether(); 

frmvalidator.addValidation("destemail","req","Please select a department."); 

// ]]> 

</script> 

因爲我任何我不是指一個Web開發人員,只是一個設計師,我得到這個形式因而工作由於教程和Stack Overflow上的陌生人的幫助,我很困惑,爲什麼我的錯誤消息不斷顯示,無論是否選擇了部門。幫助表示讚賞。謝謝!

回答

1

我想這是因爲這一點,您的電子郵件值是不是定義,因此它會經過一空的變量:<option value="<?php echo htmlspecialchars($destemail); ?>">

只是改變

<select name="destemail" id="destemail"> 
<?php foreach ($emailAddresses as $name => $email) { ?> 

<option value="<?php echo htmlspecialchars($email); ?>"> 
<?php echo htmlspecialchars($name) ; ?></option> 
<?php } ?> 
</select> 
+0

這種固定的錯誤消息的問題,但現在每次我填寫表格並按下「發送」時,就表示我沒有選擇一個部門,因爲這個PHP位於我的文檔頂部。這如何影響它無法發送? if(isset($ _ POST ['name'])){ifset($ emailAddresses [$ _ POST ['destemail']]){ exit(「Sorry,you have not selected a department。」) ; 「我試着將這些代碼排除在外,但是在頁面上什麼也沒有顯示出來。 @spacebean – KateG

+0

我想你只是想說if(!isset($ _ POST ['destemail')),對嗎?它們的寫法是在emailAddresses數組中尋找email(作爲鍵)。 – spacebean

+0

完美工作!謝謝@spacebean – KateG