2013-03-05 145 views
1

您好我目前有一些PHP代碼,將先前選中的時隙從前一頁上的複選框放到我的數據庫中,但我不知道如何在我這樣做之前將每個變量存儲在變量中,以便我可以使用它們列出我的電子郵件功能中的預約插槽在foreach循環中存儲變量

當我嘗試向我的電子郵件功能中插入'$ key'時,它只保留最後選定的值...

我的第一頁上的代碼讀取:

<?php 
for ($i=0;$i<=31;$i++){ while ($myrow = mysql_fetch_row($result)) { 
printf("<tr><td>%s</td><td>%s</td></tr>\n", 
$myrow[0]); 
} 

echo "<td><input type='checkbox' name='$displayTime2' onclick='KeepCount()'></td>"; 
echo "<td>$pagetime</td>"; ?> 

我此刻的代碼如下:

<?php 
foreach ($_POST as $key=>$value) 
{ 
    echo $key; // show times selected on previous page 
    mysql_query("INSERT INTO appointment(Patient_ID, Appointment_Date, Appointment_Time 
       , Practice_ID, Appointment_ID) 
       VALUES('$patid','$insertdate','$key','$pracid','$apptype')"); 
} 
?> 

我的郵件功能如下:

$to = "$pemail"; 
    $subject = "Talking Teeth Check Up Booking Confrmation"; 
    $message = "Hello! This e-mail is to confirm your ".$appname." appointment has been 
    booked for ".$insertdate. " at ".$key." at the ".$pracname." practice"; 
    $from = "[email protected]"; 
    $headers = "From:" . $from; 
    mail($to,$subject,$message,$headers); 
    echo "Mail Sent."; 
+12

在這段代碼中有這麼多級別的錯誤... – mellamokb 2013-03-05 21:06:48

+0

請發佈您的HTML代碼 – 2013-03-05 21:07:03

+0

你能否寫出更多細節?你正在談論電子郵件,但我只是在循環中插入mysql語句... – 2013-03-05 21:09:34

回答

0

雖然上述意見是對的,讓我來幫你。

首先,您需要確定選中了哪些複選框,因此請執行一些IF語句,以便在您的foreach循環的每個內部計算出結果。

嘗試是這樣的:

<?php 
$savedData = array(); 
foreach ($_POST as $key=>$value){ 
    $key = mysql_real_escape_string($key); 
    echo($key. "<br>"); // show times selected on previous page 
    mysql_query("INSERT INTO appointment(Patient_ID, Appointment_Date, Appointment_Time 
       , Practice_ID, Appointment_ID) 
       VALUES('$patid','$insertdate','$key','$pracid','$apptype')"); 

    //To save the variables for later: 
    $savedData[] = $key; 
} 
?> 

現在你可以訪問所有我們的$ savedData鍵[0] ... $ savedData [1] ... $ savedData [2] .. ..等等....

所以你的郵件功能可能看起來像:

foreach($savedData as $time){ 
    $to = "$pemail"; 
    $subject = "Talking Teeth Check Up Booking Confirmation"; //mis-spelled confirmation =) 
    $message = "Hello! This e-mail is to confirm your ".$appname." appointment has been 
    booked for ".$insertdate. " at ".$time." at the ".$pracname." practice"; 
    $from = "[email protected]"; 
    $headers = "From:" . $from; 
    mail($to,$subject,$message,$headers); 
    echo "Mail Sent."; 
} 

因此,這將發送一封電子郵件,每件內$savedData - 如果這確實是意圖。

+0

這些是複選框,所以這個值通常是「ON」或「OFF」。該複選框可能以某種方式命名以指示日期。 – mellamokb 2013-03-05 22:48:59

+0

@mellamokbtheWise很好的電話,沒有看到複選框的說明。讓我編輯。 – Shackrock 2013-03-05 22:49:41

+0

@ Shackrock非常感謝你,我稍微修改了一下,以便它只發送1封包含所有選定時間的電子郵件,感謝你的所有回覆 - 他們非常感謝:-) – 2013-03-06 11:14:32