2011-06-14 73 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)) 
相关问题