2011-06-14 70 views
0

這是我的窗體的代碼這並不在IE BT在所有其他瀏覽器

<form method="post" style="margin-left:15px;margin-top:6px;" onsubmit="return map_Email_Validation();"> 

    <table> 
     <tr> 
     <td colspan="2" class="faceboxheading" style="white-space:nowrap;">Share your map information with your friends</td> 
      <td colspan="2" align="left"><a href="javascript:void(0);" class="hrf_btn" onclick="hide_facebox();">[x]</a></td> 
     </tr> 
     <tr></tr> 
     <?php if($error) {?> 
     <tr> 
     <td colspan="2" class="faceboxheading"><?php echo $error;?></td> 
     </tr> 
     <?php }?> 
     <tr> 
     <td width="100px">To Email</td> 

     <td width="250px"><input type="text" name="ToID" id="ToID" style="width:274px;" onkeyup="dis();"/></td> 
     </tr> 
     <tr> 
     <td>From Email</td> 
     <td><input type="text" name="fromID" id="fromID" style="width:274px;" onkeyup="dis();" value="'.$g['email'].'" /></td> 
     </tr> 
     <tr> 
     <td>Subject</td> 
     <td><input type="text" name="subject" id="subject" style="width:274px;" onkeyup="dis();"/></td> 
     </tr> 
     <tr> 
     <td>URL</td> 
     <td><input type="text" readonly="readonly" name="URL" id="URL" size="42" style="width:274px;"/></td> 
     </tr> 
     <tr> 
     <td>Message</td> 
     <td valign="top"><textarea id="message" name="message" cols="25" rows="4" style="width:274px;" onkeyup="dis();"></textarea></td> 
     </tr> 
    <tr><td></td> 
    <td> <input type="image" style="margin-left:-2px;" src="http://jersey.cimaps.co.uk/jersey_dev/templates/default/images/send.png" name="submitbtn" id="submitbtn" value="Send"/></td> 

</td></tr> 

    </table> 
    </form> 

的功能是

function map_Email_Validation() 
{ 

     var ToID = document.getElementById('ToID').value;  
     //var fromID = document.getElementById('fromID').value; 
     var subject = document.getElementById('subject').value; 
     var message = document.getElementById('message').value; 
     var char_at=ToID.indexOf("@"); 
     var char_dot=ToID.indexOf("."); 
     var char_dolar=ToID.indexOf("$"); 
     var char_hash=ToID.indexOf("#"); 
     var at="@"; 

       var lat=ToID.indexOf(at); 
if(ToID.length<1) 
     { 
      alert('Please enter To Email!'); 
      return false; 
     } 
     else if((char_at==-1)||(char_dot==-1)||(char_dolar!=-1)||(char_hash!=-1)) 
     { 
      alert('Invalid To Email!'); 
      return false; 
     } 
     else if((char_at==0)||(char_dot==1)||(char_dot==char_at+1)) 
     { 
      alert('Invalid To Email!'); 
      return false; 
     } 
if(subject.length<1) 
     { 
      alert('Please enter Subject!'); 
      return false; 
     } 
     if(message.length<1) 
     { 
      alert('Please enter Message!'); 
      return false; 
     } 
     else if(message.length>100) 
     { 
      alert('Message can have only 100 characters!'); 
      return false; 
     } 

return true;  
} 
code in index page is 
if(isset($_POST['submitbtn'])) 
{ 
    //echo "set"; 

    $flag=true; 
    $error=""; 
    /*Getting Values**********************/ 
    $ToID=$_POST['ToID']; 
    $fromID=$_POST['fromID']; 
    $subject=$_POST['subject']; 
    $URL=$_POST['URL']; 
    $message=$_POST['message']; 

    /*Validating the data*****************/ 
    if(strlen($ToID)==0) 
    { 
     $flag=false; 
     $error.="Enter To email address field"; 
    } 
    elseif(!preg_match_all("|^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$|U",$ToID,$arr)) 
    { 
     $flag=false; 
     $error.="Invalid To email address"; 
    } 
if(strlen($subject)==0) 
    { 
     $flag=false; 
     $error.="Enter subject field"; 
    } 
    if(strlen($message)==0) 
    { 
     $flag=false; 
     $error.="Enter message field"; 
    } 
    elseif(strlen($message)>100) 
    { 
     $flag=false; 
     $error.="Message can have only 100 charaters"; 
    } 

    if($flag=="true") 
    { 

     $urltoemail = "<html><head><title>Forgot Password</title></head><body> 
<table><tr><td>".$message."</td></tr><tr><td><a href='{$URL}'>Click here for viewing map</a></td></tr></table></body></html>"; 
     $headers = "MIME-Version: 1.0" . "\r\n"; 
     $headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n"; 
     if(strlen($fromID)==0) 
     $fromID = '[email protected]'; 
     $headers .= "From: $fromID \r\n"; 
     mail($ToID,$subject,$urltoemail,$headers); 
     //header("Location:".$_SERVER['SCRIPT_NAME']); 
    } 

} 

郵件亙古在IE瀏覽器,但成功地在所有其他發瀏覽器...任何想法?

+2

請通過選擇代碼並單擊「{}」來格式化您的問題。 – Gaurav 2011-06-14 05:28:19

+0

所以你會得到某種錯誤? – Ibu 2011-06-14 05:31:04

+0

什麼不適用於IE?你是否嘗試禁用js驗證並查看? JS控制檯告訴你什麼?因爲,你知道,郵件是由服務器發送,而不是由瀏覽器.. – 2011-06-14 05:33:26

回答

0

我不知道,我不完全理解你做了修復。但對我來說,支票if(isset($_POST['submitbtn']))在IE8和FF4都失敗;它在Chrome12中運行良好。其原因是,當你使用的是<input type="image">樣的按鈕提交表單,你需要檢查它像這樣:

if(isset($_POST['submitbtn_x'])) { 
    ... 
    ... 
} 

這檢查將在所有的瀏覽器。要檢查這一點,你可能想在if()開始之前做一個print_r($_POST),看看它是怎樣的。

希望這有助於解決您的問題。

/Abhay

+0

亞..我把if(isset($ _ POST ['submitbtn_x']))並正常工作 – Ashitha 2011-06-14 10:35:59

0

確實很難閱讀你的代碼並確定你在問什麼。

但是,由於郵件不是客戶端活動,因此無論發送到服務器(即在POST中),這幾乎都是一個問題。嘗試在頁面的POST第一次收到時在代碼中放置一個斷點,並比較從IE瀏覽器到Chrome/Firefox的POST值。我猜你會發現它們不同,可以很快修復它。

更新 - 如果你嘗試這樣做,而不是尋找一個名爲提交:

if (!empty($_POST)) 
相關問題