Кнопка не будет открывать mailto: адрес, основанный на выпадающем списке из базы данных mySQL

64
8

Поэтому у меня есть база данных с таблицей storeconst. В этой таблице у меня есть столбец Store и GenManageEmail. Моя папка успешно заполняет список магазинов в базе данных. Однако моя кнопка отправки не динамически меняется на соответствующее письмо, и кнопка не нажимает на ссылку mailto: email@domain.com.

<?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>

Например, если они выбрали Филадельфию в качестве магазина, тогда кнопка отправки должна отражать phillymanager@domain.com. Если они выберут Лос-Анджелес, это должно отражать losangelesmanager@domain.com. В столбце GenManageEmail есть все электронные письма. Вот ссылка на ссылку: http://imgur.com/jSoZ2w5

благодаря

спросил(а) 2021-01-19T15:47:04+03:00 6 месяцев назад
1
Решение
109

Я восстановил это для вас. Не проверено, но должно работать. Нижеприведенный 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>

Это действительно основательно и должно быть действительно одетым

ответил(а) 2021-01-19T15:47:04+03:00 6 месяцев назад
45

Я считаю, что вы пропустили кавычки в value param.

Это позволит решить проблему с помощью кнопки, не отправляющей вас на почтовый клиент.

Однако..

Поскольку PHP обрабатывается на сервере, попытка изменить электронную почту путем замены в $d['GenManageEmail'] на странице не будет работать. Это гипертекстовый препроцессор.

Это может помочь вам понять: просмотреть исходный код страницы и обратите внимание, как кнопка value пары остаются mailto:$d['GenManageEmail'].

Я считаю, что вы пытаетесь сделать, чтобы браузер отправил человека на выбранный адрес электронной почты. Для этого вам понадобится JavaScript.

ответил(а) 2021-01-19T15:47:04+03:00 6 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема