Заполнить поле контактной формы из ссылки

У меня есть веб-сайт, который имеет несколько страниц портфолио html. На каждой странице есть ссылка на контакт.HTML-страница. Что я пытаюсь сделать, так это получить строку «тема» контактной формы, заполненную идентификатором, который я прикрепил к ссылке на каждой странице. Например, если пользователь находится на ‘ 38mmSpruce.html ‘и они нажимают на’ get in touch with us about this item ‘ link, when the contact.HTML страница загружается, строка темы контактной формы предварительно заполняется.Я тщетно искал решение в течение 3 дней; я пробовал события onClick, я пытался использовать функцию ‘_GET’ в php, я пытался добавлять строковые запросы к якорям, но правда в том, что я просто не уверен, что я делаю неправильно.
Я знаю, что код является обрывочным и отсутствует загрузка важных данных проверки, но мне просто нужно знать, как сделать это возможным, чтобы я мог двигаться дальше. Честно говоря, это губит меня. Это мой контакт.форма php

<?php
//I've changed these to dummies just to post this. It works with my email
$from = 'Demo contact form <example@example.com>';
$sendTo = 'Demo contact form <example@example.com>';
//I tried to change this to '_GET['subject'] but it didn't work
$subject = 'Subject';
$fields = array('name' => 'Name', 'email' => 'Email', 'subject' => 'Subject', 'message' => 'Message');
$okMessage = 'Contact form succesfully submitted. Thank you, I will 
    get back to you soon!';
$errorMessage = 'There was an error while submitting the form. Please 
    try again later';
try {
    $emailText = "You have new message from contact 
    formn=============================n";
    foreach ($_POST as $key => $value) {
        if (isset($fields[$key])) {
            $emailText .= "$fields[$key]: $valuen";
        }
    }
    mail($sendTo, $subject, $emailText, "From: " . $from);
    $responseArray = array('type' => 'success', 'message' => $okMessage);
} catch (Exception $e) {
    $responseArray = array('type' => 'danger', 'message' => $errorMessage);
}
if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
    $encoded = json_encode($responseArray);
    header('Content-Type: application/json');
    echo $encoded;
} else {
    echo $responseArray['message'];
}
?>

И моя html форма выглядит так

<form id="contact-form" method="post" action="contact.php" name="contact-form" role="form">
    <div class="messages"></div>
    <div class="controls">
        <div class="row">
            <div class="col-md-6">
                <label for="form_name">Name *</label>
                <input id="form_name" type="text"
                name="name" class="form-control" placeholder="Please enter your name *"
                    ="    ">
            </div>
            <div class="col-md-6">
                <label for="form_email">Email *</label>
                <input id="form_email" type="email" name="email" class="form-control" placeholder="Please enter your email *"     ="    ">
            </div>
            <div class="col-md-12">
                <label for="form_subject">Subject *</label>
                <input id="form_subject" name="subject" class="form-control" placeholder="Please enter the subject you'd like to discuss *" rows="1"     ="    ">
            </div>
            <div class="col-md-12">
                <label for="form_message">Message *</label>
                <textarea id="form_message" name="message" class="form-control" placeholder="Your message here *" rows="4"     ="    "></textarea>
            </div>
            <div class="col-md-12">
                <input type="submit" class="btn btn-success btn-send" value="Send
                message">
            </div>
            <div class="col-md-12">
                <p class="text-muted">
                    <strong>*</strong> These fields are     .
                </p>
            </div>
        </div>
    </div>
</form>

Если есть что-то вообще, что вы можете предложить, чтобы помочь мне решить эту, казалось бы, простую головоломку, пожалуйста, помогите мне.
Oh, total Noob, obvs. Сожалеть об этом. Но я учусь!

1 ответ

  1. Если вы пытаетесь предварительно загрузить тему в html-код формы, то вам вообще не нужно изменять код обработки формы. Предполагая, что я правильно понимаю ваш код, это то, что вы должны сделать:

    Ссылка на Вашей 38mmSpruce.htmlстранице должна выглядеть примерно так:

    http://example.com/contact.html?subject=the+subject+of+the+message
    

    Обратите subjectвнимание на строку запроса в кодировке URL.

    Затем в вашей форме HTML (не php, который вы написали для обработки данных формы) вы просто установите значение поля ввода:

    <input id="form_subject" name="subject" class="form-control"
        placeholder="Please enter the subject you'd like to discuss *" 
        value="<?php echo $_GET['subject']; ?>" 
        required="required"/>
    

    Обратите внимание, как subjectдоступ к параметру запроса $_GETзатем отражается в значение входных данных.

    Примечание: у вас была опечатка в коде (трейлинг</textarea>), который я исправил… это также может быть частью вашей проблемы!

    Примечание 2: это также предполагает, что ваши html-файлы обрабатываются php, что определенно не типично. Возможно, Вам потребуется изменить contact.htmlна contact.php.