2015-01-13 63 views
1

所以我有一個數據庫與表storeconst。在這張表中我有一個名爲Store和GenManageEmail的列。我的下拉菜單成功填充數據庫中的商店列表。但是,我的發送按鈕不會動態更改爲適當的電子郵件,並且按鈕不會點擊到mailto:[email protected]鏈接。按鈕不會打開mailto:基於mySQL數據庫下拉的地址

<?php 
require ("dbconnect.php"); 
$db = new mysqli($servername, $username, $password, $db); 
?> 

<div class="label">Select Store:</div> 

<select name="stores"> 
<option value = "">---Select---</option> 
<?php 
$queryusers = "SELECT * FROM `storeconst` ORDER BY `Store` ASC"; 
$db = mysqli_query($db, $queryusers); 
while ($d=mysqli_fetch_assoc($db)) { 
echo "<option value='{".$d['GenManageEmail']."}'>".$d['Store']."</option>"; 
} 
?> 
    </select> 
<button name="send" value=mailto:.$d['GenManageEmail']. type="submit">Send</button> 

因此,例如,如果他們選擇費城作爲商店,那麼發送按鈕應反映[email protected]。如果他們選擇洛杉磯,則應該反映[email protected] GenManageEmail列包含所有電子郵件。下面是引用到一個畫面:http://imgur.com/jSoZ2w5

感謝

+2

嗯,沒有。要動態更改客戶端上的內容,您需要一些JavaScript - 您不能在PHP中執行此操作,因爲您生成的HTML是在服務器端創建的。 – andrewsi

回答

0

我重建這個給你。沒有測試,但應該工作。下面的PHP將處理電子郵件發送,而不是直接從表單中。基本上,html表單將收集數據,並將其發送回此頁面,電子郵件將發送至您選擇的電子郵件,併發送您選擇的商店名稱。

我認爲這是你想要的..讓我知道你是否想要做任何改變,如果它的工作。

<?php 
mysql_connect("YOUR HOST ADDRESS","YOUR USERNAME","YOUR PASSWORD"); 
mysql_select_db("YOUR DB NAME"); 

//////////////////////////////////////////////////////////////////// 
// // COLLECT FORM INFO AND SEND EMAIL // // 
/////////////////////////////////////////////////////////////////// 

if (isset ($_POST['email'])){ 
    $email = $_POST['email']; 
    $store = $_POST['store']; 

    $subject = ''; // Set the subject text here 
    $message = $store; // The store you selected 
    $to = $email; // The email you selected 
    $type = 'HTML'; // Ignore this 
    $charset = 'utf-8'; // Ignore this 
    $mail  = 'Store Info'; // From Address 
    $uniqid = md5(uniqid(time())); // Ignore this 
    $headers = 'From: '.$mail."\n"; // Ignore this 

    mail($to, $subject, $message, $headers); // Your mail being sent! 

    print 'Success! You have sent '.$store.' to '.$email.'!'; // Your success msg! Set this to anything. A lot of options here. 
    exit(); 
} 

//////////////////////////////////////////////////////////////////// 
// // GET DATA FROM SQL DB // // 
/////////////////////////////////////////////////////////////////// 

$genManSelector = ''; //Initialize dynamic dropdown selection list variable for email list 
$storeSelector = ''; //Initialize dynamic dropdown selection list variable for store list 
$sql = mysql_query("SELECT GenManageEmail, Store FROM storeconst ORDER BY Store ASC"); 
while($row = mysql_fetch_array($sql)){ 
    $GenManageEmail = $row["GenManageEmail"]; 
    $getStore = $row["Store"]; 
    $genManSelector .= '<option value="'.$GenManageEmail.'">'.$GenManageEmail.'</option>'; 
    $storeSelector .= '<option value="'.$getStore.'">'.$getStore.'</option>'; 
    //Adove is your dynamic dropdown selection lists. All stores and 
    //emails that are in your database will be available for selection. 
} 
?> 

下面的HTML表單,將表單動作設置爲你的頁面url。

<form action="thisPage.php" method="post"> 
    Select Email:<br> 
    <select name="email"> 
     <?php print $storeSelector ?> 
    </select><br> 
    Select Store:<br> 
    <select name="store"> 
     <?php print $storeSelector ?> 
    </select><br> 
    <input type="submit" value="Send to Manager"> 
</form> 

這是很基本的和真的應該打扮

+0

謝謝,但它仍然無法打開Outlook的電子郵件地址。 – hyperj123

+1

這看起來像我需要一些JS來改變價值。在我選擇一家商店後,該值保持簡單「mailto:」 – hyperj123

+0

我嘗試過使用Javascript。當談到JS時,我是一個新手。你能幫我嗎? – hyperj123

0

我相信你已經錯過了在value PARAM引號。

這將解決您的問題與按鈕不發送給您的郵件客戶端。

但是..

由於PHP是在服務器上進行處理,試圖通過該頁面將無法正常工作在$d['GenManageEmail']代更改電子郵件。這是一個超文本預處理器

這可能會幫助您理解:查看頁面的源代碼並注意按鈕的value參數仍爲mailto:$d['GenManageEmail']

我相信你要做的就是讓瀏覽器發送人到選定的電子郵件。爲此,您將需要JavaScript。

+0

你可以鏈接我或張貼一個JS腳本來改變按鈕的值嗎? – hyperj123

+0

http://stackoverflow.com/questions/7802235/form-input-value-based-on-option-value-selected看看這個:) – Fuselight

+0

從這個腳本,它看起來像我必須輸入每個電子郵件地址爲選項。還有其他的JS我可以參考嗎? – hyperj123