2016-09-16 56 views
0

我很新的PHP和我想編寫一個聯繫表單/問卷與萬達單選按鈕PHP的聯繫表格

我需要的形式通過單選按鈕的結果,例如拉

僱員名:Ian Matthews 馬克:(他們點擊了什麼單選按鈕) 評論:他們在文本框中留下的評論。

,但如果其他名字的填寫,然後創建上述細節

新線

EmployeeName:伊恩·馬修斯 馬克:(什麼都單選按鈕,用戶點擊) 評論:什麼都評價他們留在文本框。 (他們點擊了什麼單選按鈕) 評論:他們在文本框中留下了什麼評論。

我試圖用「的foreach」,但不認爲我正確地使用它

希望有人能幫助

感謝

目前我有這樣的代碼

<?php 
 

 
$EmailFrom = ""; 
 
$EmailTo = ""; 
 
$Subject = "Questionnaire"; 
 

 
$EmpName = Trim(stripslashes($_POST['EmployeeName'])); 
 
$Radio = Trim(stripslashes($_POST['Radio'])); 
 
$Comment = Trim(stripslashes($_POST['Com'])); 
 

 

 
foreach ($_POST ['Radio'] as $value) { 
 
    $Body = "$EmpName, $Radio, $Comment\n"; 
 
    } 
 

 

 
$success = mail($EmailTo, $Subject, $Body, "From: <$EmailFrom>"); 
 

 

 
if ($success){ 
 
    print "top work"; 
 
} 
 
else{ 
 
    print "you have a error"; 
 
} 
 

 
?>

<table width="100%" border="0" cellspacing="0" cellpadding="0"> 
 
    <tr> 
 
    <td height="10" colspan="7"></td> 
 
    </tr> 
 
    <tr> 
 
    <td>&nbsp;</td> 
 
    <td> 
 
     <h4>Excellent</h4> 
 
    </td> 
 
    <td> 
 
     <h4>Very Good</h4> 
 
    </td> 
 
    <td> 
 
     <h4>Good</h4> 
 
    </td> 
 
    <td> 
 
     <h4>Satisfactory</h4> 
 
    </td> 
 
    <td> 
 
     <h4>Poor</h4> 
 
    </td> 
 
    <td> 
 
     <h4>N/A</h4> 
 
    </td> 
 
    </tr> 
 
    <tr> 
 
    <td height="30"> 
 
     <label>Ian Matthews 
 
     <input type="hidden" name="EmployeeName" value="Ian Matthews" /> 
 
     </label> 
 
    </td> 
 
    <td align="center"> 
 
     <input type="radio" name="Radio" value="10-Excellent" /> 
 
    </td> 
 
    <td align="center"> 
 
     <input type="radio" name="Radio" value="7-VeryGood" /> 
 
    </td> 
 
    <td align="center"> 
 
     <input type="radio" name="Radio" value="4-Good" /> 
 
    </td> 
 
    <td align="center"> 
 
     <input type="radio" name="Radio" value="0-Satisfactory" /> 
 
    </td> 
 
    <td align="center"> 
 
     <input type="radio" name="Radio" value="-5-Poor" /> 
 
    </td> 
 
    <td align="center"> 
 
     <input type="radio" name="Radio" value="N/A" /> 
 
    </td> 
 
    </tr> 
 
    <tr> 
 
    <td height="30"> 
 
     <label class="colourGrey">Comments:</label> 
 
    </td> 
 
    <td colspan="6" align="center"> 
 
     <input class="teamCom" type="text" name="Com" /> 
 
    </td> 
 
    </tr> 
 
    <tr> 
 
    <td height="10" colspan="7"></td> 
 
    </tr> 
 
    <tr> 
 
    <td colspan="7" class="BorderLine"></td> 
 
    </tr> 
 
    <tr> 
 
    <td height="10" colspan="7"></td> 
 
    </tr> 
 
    <tr> 
 
    <td>&nbsp;</td> 
 
    <td> 
 
     <h4>Excellent</h4> 
 
    </td> 
 
    <td> 
 
     <h4>Very Good</h4> 
 
    </td> 
 
    <td> 
 
     <h4>Good</h4> 
 
    </td> 
 
    <td> 
 
     <h4>Satisfactory</h4> 
 
    </td> 
 
    <td> 
 
     <h4>Poor</h4> 
 
    </td> 
 
    <td> 
 
     <h4>N/A</h4> 
 
    </td> 
 
    </tr> 
 
    <tr> 
 
    <td height="30"> 
 
     <label>Ciara Maguire 
 
     <input type="hidden" name="EmployeeName" value="Ciara Maguire" /> 
 
     </label> 
 
    </td> 
 
    <td align="center"> 
 
     <input type="radio" name="Radio" value="10-Excellent" /> 
 
    </td> 
 
    <td align="center"> 
 
     <input type="radio" name="Radio" value="7-VeryGood" /> 
 
    </td> 
 
    <td align="center"> 
 
     <input type="radio" name="Radio" value="4-Good" /> 
 
    </td> 
 
    <td align="center"> 
 
     <input type="radio" name="Radio" value="0-Satisfactory" /> 
 
    </td> 
 
    <td align="center"> 
 
     <input type="radio" name="Radio" value="-5-Poor" /> 
 
    </td> 
 
    <td align="center"> 
 
     <input type="radio" name="Radio" value="N/A" /> 
 
    </td> 
 
    </tr> 
 
    <tr> 
 
    <td height="30"> 
 
     <label class="colourGrey">Comments:</label> 
 
    </td> 
 
    <td colspan="6" align="center"> 
 
     <input class="teamCom" type="text" name="Com" /> 
 
    </td> 
 
    </tr> 
 
    <tr> 
 
    <td height="10" colspan="7"></td> 
 
    </tr> 
 
    <tr> 
 
    <td colspan="7" class="BorderLine"></td> 
 
    </tr> 
 
    
 
    </table>

+0

所有的HTML代碼是相同的形式?或者每個員工都有自己的表格? – Alexi

+0

嗨,這是所有在同一表格,所以它會一次提交 – Dan152

回答

2

首先,在所有的,使用的是兩個員工相同的輸入名稱。你必須設置不同的名稱:

<input type="hidden" name="EmployeeName1" value="Ian Matthews" /> 
<input type="hidden" name="EmployeeName2" value="Ciara Maguire" /> 

而這所有的輸入(COM1和COM2,收音機1和第二廣播電臺,..)

在你的PHP文件,你必須做一些像

$Body = ""; 
$numEmployees = 2; // or the number you put 
// Each iteration per employee, accesing to his form data 
for ($i=1; $i<=$numEmployees; $i++) 
{ 
    $EmpName = Trim(stripslashes($_POST['EmployeeName' .$i])); 
    $Comment = Trim(stripslashes($_POST['Com' .$i])); 
    $Radio = Trim(stripslashes($_POST['radio' .$i])); 
    $Body .= "$EmpName, $Radio, $Comment\n"; // Note the dot in ".=" 
} 

然後

$success = mail($EmailTo, $Subject, $Body, "From: <$EmailFrom>"); 

當然,你必須emailto和emailfrom空,但我supose您填寫他們在你的最終版本。 我不執行這個版本,但我希望能幫助你理解你的錯誤。

+0

我忘了解釋爲什麼你的foreach是錯的。您不連接var Body,因此在每次迭代中它都被替換。您始終使用相同的Var Employee,Com和Radio進行設置。最後,你正在迭代$ value,但是你使用$ Radio。例如,試着理解這個代碼「$ i = [1,4,5]; foreach($ i as $ temp){echo $ temp;}」 – Alexi

+0

您好這工作非常感謝,我應該說的是,如果收音機或com沒有選擇/空我不希望它顯示任何東西,所以跳過一個名字,ID這可能嗎? – Dan152

+0

也許你想要這樣的東西。在「for」裏面,用這個條件包含$ Body:「if($ Radio!=」「|| $ Comment!=」「){$ Body = ....}」。我的意思是,如果$ Radio或$ Comment與空字符串不同,請將值分配給$ Body。 – Alexi

0

$_POST['Radio']包含單個值,而您想通過多個值發送。對於這一點,最好的辦法是將輸入分配到一個數組,因此:

$_POST['Radio'][0] == 'Lorem' 
$_POST['Radio'][4] == 'amet' 

最後,你是:

<input name="Radio[]" value="Lorem" /> 
<input name="Radio[]" value="ipsum" /> 
<input name="Radio[]" value="dolor" /> 
<input name="Radio[]" value="sit" /> 
<input name="Radio[]" value="amet" /> 

然後你可以通過訪問他們作爲一個數組檢索結果每次在循環中覆蓋賦值給$ Body。而不是$Body = "$EmpName, $Radio, $Comment\n";,你會想要$Body .= "$EmpName, $Radio, $Comment\n";。注意等於之前的點。這附加到一個變量,而不是覆蓋它。

假設你只有一個員工除了每POST許多單選按鈕響應提交一個評論,然後你可以使用類似:

foreach ($_POST ['Radio'] as $value) { 
    $Body .= "$EmpName, $value, $Comment\n"; 
} 

希望這有助於!

0

我修改你這樣的代碼 -

 <form method="post" > 

    <table width="100%" border="0" cellspacing="0" cellpadding="0"> 
     <tr> 
     <td height="10" colspan="7"></td> 
     </tr> 
     <tr> 
     <td>&nbsp;</td> 
     <td> 
      <h4>Excellent</h4> 
     </td> 
     <td> 
      <h4>Very Good</h4> 
     </td> 
     <td> 
      <h4>Good</h4> 
     </td> 
     <td> 
      <h4>Satisfactory</h4> 
     </td> 
     <td> 
      <h4>Poor</h4> 
     </td> 
     <td> 
      <h4>N/A</h4> 
     </td> 
     </tr> 
     <tr> 
     <td height="30"> 
      <label>Ian Matthews 
      <input type="hidden" name="EmployeeName1" value="Ian Matthews" /> 
      </label> 
     </td> 
     <td align="center"> 
      <input type="radio" name="Radio1" value="10-Excellent" /> 
     </td> 
     <td align="center"> 
      <input type="radio" name="Radio1" value="7-VeryGood" /> 
     </td> 
     <td align="center"> 
      <input type="radio" name="Radio1" value="4-Good" /> 
     </td> 
     <td align="center"> 
      <input type="radio" name="Radio1" value="0-Satisfactory" /> 
     </td> 
     <td align="center"> 
      <input type="radio" name="Radio1" value="-5-Poor" /> 
     </td> 
     <td align="center"> 
      <input type="radio" name="Radio1" value="N/A" /> 
     </td> 
     </tr> 
     <tr> 
     <td height="30"> 
      <label class="colourGrey">Comments:</label> 
     </td> 
     <td colspan="6" align="center"> 
      <input class="teamCom" type="text" name="Com1" /> 
     </td> 
     </tr> 
     <tr> 
     <td height="10" colspan="7"></td> 
     </tr> 
     <tr> 
     <td colspan="7" class="BorderLine"></td> 
     </tr> 
     <tr> 
     <td height="10" colspan="7"></td> 
     </tr> 
     <tr> 
     <td>&nbsp;</td> 
     <td> 
      <h4>Excellent</h4> 
     </td> 
     <td> 
      <h4>Very Good</h4> 
     </td> 
     <td> 
      <h4>Good</h4> 
     </td> 
     <td> 
      <h4>Satisfactory</h4> 
     </td> 
     <td> 
      <h4>Poor</h4> 
     </td> 
     <td> 
      <h4>N/A</h4> 
     </td> 
     </tr> 
     <tr> 
     <td height="30"> 
      <label>Ciara Maguire 
      <input type="hidden" name="EmployeeName2" value="Ciara Maguire" /> 
      </label> 
     </td> 
     <td align="center"> 
      <input type="radio" name="Radio2" value="10-Excellent" /> 
     </td> 
     <td align="center"> 
      <input type="radio" name="Radio2" value="7-VeryGood" /> 
     </td> 
     <td align="center"> 
      <input type="radio" name="Radio2" value="4-Good" /> 
     </td> 
     <td align="center"> 
      <input type="radio" name="Radio2" value="0-Satisfactory" /> 
     </td> 
     <td align="center"> 
      <input type="radio" name="Radio2" value="-5-Poor" /> 
     </td> 
     <td align="center"> 
      <input type="radio" name="Radio2" value="N/A" /> 
     </td> 
     </tr> 
     <tr> 
     <td height="30"> 
      <label class="colourGrey">Comments:</label> 
     </td> 
     <td colspan="6" align="center"> 
      <input class="teamCom" type="text" name="Com2" /> 
     </td> 
     </tr> 
     <tr> 
     <td height="10" colspan="7"></td> 
     </tr> 
     <tr> 
     <td colspan="7" class="BorderLine"></td> 
     </tr> 

     </table> 
       <input type="submit" value="Send Feedback" /> 

      </form> 


    <?php 

    if(isset($_POST)) { 

    $EmailFrom = ""; 
    $EmailTo = ""; 
    $Subject = "Questionnaire"; 

    $Body = ""; 

    $noParaPerEmployee = 3; 
    $n = 0; 

    foreach ($_POST as $key=> $value) { 
     //echo "$key => $value <br/>"; 
     //$Body .= "$EmpName, $Radio, $Comment\n"; 
     $Body .= "$value , "; 
     $n++; 
     if($n===3) { 
      $Body = substr($Body,0, -2); // get rid of last comma.. 
      $Body .= "\n"; 
      $n = 0; 
     } 

     } 

    //echo "$Body <br/>\n"; 
    $success = mail($EmailTo, $Subject, $Body, "From: <$EmailFrom>"); 


    if ($success){ 
     print "top work"; 
    } 
    else{ 
     print "you have a error"; 
    } 

    } 

    ?>