Отображать «имя», а не «ID» при отправке электронных писем - PullRequest
0 голосов
/ 18 октября 2018

Я новичок в PHP.Теперь я хочу настроить отправку писем.но, к сожалению, в каком-то поле я использую «ID» и буду отображать «Имя».Пример:

<div class="form-group">
                            <label for="contact_departement_id"><?php echo $lang['contact_departement_id'] ?></label>
                            <select class="form-control" name="contact_departement_id" id="contact_departement_id">
                                <option value="x"><?php echo $lang['chooseone'] ?></option>
                                <?php foreach($listDepartement['datas'] as $departement): ?>
                                    <option 
                                        <?php 
                                            echo ($state == 'edit') && ($departement->departement_id == $datas->contact_departement_id) ? 'selected="selected"': '';
                                        ?>
                                        value="<?php echo $departement->departement_id ?>">
                                        <?php echo $departement->departement_name ?>
                                    </option>
                                <?php endforeach ?>
                            </select>
                        </div>  

и я установил в письмах

$contact_name = $_POST['contact_name'];
$contact_ext = $_POST['contact_ext'];
$contact_direktorat_id = $_POST['contact_direktorat_id'];
$contact_departement_id = $_POST['contact_departement_id'];
$contact_lokasi_id = $_POST['contact_lokasi_id'];
//$mail->SMTPSecure = 'tls';                            // Enable encryption, 'ssl' also accepted
$message = file_get_contents('mail.html'); 
    $message = str_replace('%contact_name%', $contact_name, $message); 
    $message = str_replace('%contact_ext%', $contact_ext, $message); 
    $message = str_replace('%contact_direktorat_id%', $contact_direktorat_id, $message); 
    $message = str_replace('%contact_departement_id%', $contact_departement_id, $message); 
    $message = str_replace('%contact_lokasi_id%', $contact_lokasi_id, $message); 

Вывод:

Dear All,

New Extention has been added. Here are details:
Contact Name: test
Ext: 123
Directorate: 2
Department: 2
Location: 4

Мне нужны некоторые инструкции, как отображать «Имя», а не «ID»

1 Ответ

0 голосов
/ 18 октября 2018

Форма отправляет все, что находится в атрибуте значения элемента option, а не в содержимом тега.Вам необходимо предоставить сопоставление для ваших имен, например:

$departments = [
    '1' => 'Sales',
    '2' => 'Support',
    '3' => 'Accounts',
];

Перед использованием их следует проверить проверенные значения (поскольку клиенты могут отправлять нежелательные сообщения, попытки взлома и т. Д.), А затем сопоставлять их через массив,что-то вроде:

if (!array_key_exists($_POST['contact_direktorat_id'], $departments)) {
    $contact_direktorat_name = $departments[$_POST['contact_direktorat_id']];
} else {
    $contact_direktorat_name = 'Unknown';
}

Повторите это с тем количеством из них, которое вам нужно, определите столько массивов, сколько вам нужно, или, возможно, посмотрите значения в базе данных, чтобы проверить их вместо использования массивов (хотя убедитесь, чтоне открывать себя атакам SQL-инъекций) - вы получите общее представление.

...