2012-07-13 40 views
0

我有在該文件我有以下代碼將其數據發送到一個process.php文件進行處理的一種形式:獲取CheckBox值

<?php 
    $name = $_GET['name']; 
    $number = $_GET['number']; 
    $email = $_GET['email']; 
    $comment = $_GET['message']; 
    $sales = $_POST['sales']; 
    $lettings = $_POST['lettings']; 

    $to = "[email protected]"; 

    $subject = "New website registration"; 

    $message = "Name: ".$name."\r\n"; 
    if(isset($number) && $number!='') 
     $message.= "Number: ".$number."\r\n"; 
    if(isset($email) && $email!='') 
     $message.= "Email: ".$email."\r\n"; 
    if(isset($comment) && $comment!='') 
     $message.= "Comment: ".$comment."\r\n"; 
    if(isset($sales)) 
    { 
     $message.= "I am Interested in Sales" . "\r\n"; 
    }else{ 
     // 
    } 
    if(isset($lettings)) 
    { 
     $message.= "I am Interested in Lettings"; 
    }else{ 
     // 
    } 

    $headers = "From: ".$name." <".$email.">"; 

    $result = mail($to,$subject,$message,$headers); 

    return $result; 
?> 

爲形式的HTML如下所示:

<form id="register_form" name="register" method="post" action="/content/contact/process.php"> 
    <input type="text" id="name" name="name" class="regform" onFocus="if(this.value=='Name'){this.value='';}" onBlur="if(this.value==''){this.value='Name';}" value="Name" /> 
    <input type="text" id="number" name="number" class="regform" onFocus="if(this.value=='Phone number'){this.value='';}" onBlur="if(this.value==''){this.value='Phone number';}" value="Phone number" /> 
    <input type="text" id="email" name="email" class="regform" onFocus="if(this.value=='Email address'){this.value='';}" onBlur="if(this.value==''){this.value='Email address';}" value="Email address" /> 
    <textarea id="message" name="message" class="regtext" onFocus="if(this.value=='Message'){this.value='';}" onBlur="if(this.value==''){this.value='Message';}">Message</textarea> 
    <label for"sales">Sales<input type="checkbox" name="sales" value="1" /></label> 
    <label for"sales">Lettings<input type="checkbox" name="lettings" value="1"/></label> 
    <input id="submit" type="submit" value="Submit" class="regsender" /> 
    <div class="loading"></div> 
</form> 

當複選框被選中時,預期的郵件不會通過電子郵件。我在這裏錯過了什麼。我嘗試了幾種不同的方法來實現這一點,但都沒有做到。任何幫助,將不勝感激。謝謝。

+0

@ register_form中你使用的方法後,但@ PHP你使用的$ _GET?你有沒有試過$ _POST,CMIIW – Ricky 2012-07-13 10:36:14

+0

是的,兩種都試過,但不起作用。 – 2012-07-13 11:01:47

+0

關於這個人的任何想法? – 2012-07-13 14:46:56

回答

0

您正使用方法= POST和檢索與$ _GET

+0

我試過兩個哥們。 – 2012-07-13 10:43:41

0

值我已經更新了你的代碼檢查

<?php 
    if(isset($_POST['submit'])){ 
     $name = $_POST['name']; 
     $number = $_POST['number']; 
     $email = $_POST['email']; 
     $comment = $_POST['message']; 
     if (isset($_POST['sales'])) 
     { 
      $sales = $_POST['sales']; 
     } 
     else if(isset($_POST['lettings'])) 
     { 
      $lettings =$_POST['lettings']; 
     } 

     $to = "[email protected]"; 

     $subject = "New website registration"; 

     $message = "Name: ".$name."\r\n"; 
     if(isset($number) && $number!='') 
      $message.= "Number: ".$number."\r\n"; 
     if(isset($email) && $email!='') 
      $message.= "Email: ".$email."\r\n"; 
     if(isset($comment) && $comment!='') 
      $message.= "Comment: ".$comment."\r\n"; 

     if(isset($_POST['sales'])) 
     { 
      $message.= "I am Interested in Sales" . "\r\n"; 
     } 
     else if(isset($_POST['lettings'])) 
     { 
      $message.= "I am Interested in Lettings"; 
     } 
     echo $message; 
     $headers = "From: ".$name." <".$email.">"; 

     $result = mail($to,$subject,$message,$headers); 

     return $result; 
     } 
    ?> 

<form id="register_form" name="register" method="post" action="testing_page.php"> 
    <input type="text" id="name" name="name" class="regform" onFocus="if(this.value=='Name'){this.value='';}" onBlur="if(this.value==''){this.value='Name';}" value="Name" /> 
    <input type="text" id="number" name="number" class="regform" onFocus="if(this.value=='Phone number'){this.value='';}" onBlur="if(this.value==''){this.value='Phone number';}" value="Phone number" /> 
    <input type="text" id="email" name="email" class="regform" onFocus="if(this.value=='Email address'){this.value='';}" onBlur="if(this.value==''){this.value='Email address';}" value="Email address" /> 
    <textarea id="message" name="message" class="regtext" onFocus="if(this.value=='Message'){this.value='';}" onBlur="if(this.value==''){this.value='Message';}">Message</textarea> 
    <label for"sales">Sales<input type="checkbox" name="sales" value="1" /></label> 
    <label for"sales">Lettings<input type="checkbox" name="lettings" value="1"/></label> 
    <input id="submit" name="submit" type="submit" value="Submit" class="regsender" /> 
    <div class="loading"></div> 
</form> 
+0

除了複選框外,其他所有值都可以在外部process.php文件中使用$ _GET。如果我在process.php中將$ _GET的值更改爲$ _POST,根本就沒有任何東西出現? – 2012-07-13 10:54:31

+0

處理表單的PHP代碼位於外部文件中,而不是表單的一部分。 – 2012-07-13 10:55:16

+0

僅使用$ _POST ['sales']作爲複選框並檢查它 – Hkachhia 2012-07-13 10:59:46