PHP контактная форма электронной почты

0

Я создал контактную форму электронной почты PHP, и она работает. Теперь, кроме того, я использовал Javascript для добавления дополнительных раскрывающихся списков в форму, в которой пользователь может выбрать вариант. Я бы хотел, чтобы эти выбранные параметры из новых выпадающих списков были добавлены в текст сообщения электронной почты для электронной почты PHP.

Просто интересно, может ли кто-нибудь помочь.

EMAIL FORM

<form method='post' action='sendeailme.php'>
<form>
    <table width="766" border="0">
        <tr>
            <td width="258"><span class="asdwd">
            <label>Name</label>
          </span>
            </td>
            <td width="255"><span class="asdwd">
            <label>Number</label>
          </span>
            </td>
            <td width="239"><span class="asdwd">
            <label>Email</label>
          </span>
            </td>
        </tr>
    </table>
    <p class="asdwd">
        <input name="name" placeholder="Your Name" id="name">
        <input name="number" placeholder="Your Number" id="number">
        <input name="email" placeholder="Your Name" id="email">
    </p>
    <table width="766" border="0">
        <tr>
            <td width="261"><span class="asdwd">
     <label>Occasion</label>
   </span>
            </td>
            <td width="255"><span class="asdwd">
     <label>Venues</label>
   </span>
            </td>
            <td width="239"><span class="asdwd">
     <label>Date of the Event </label>
   </span>
            </td>
        </tr>
    </table>
    <p>
        <input name="Occasion" placeholder="Your Email" id="Occasion">
        <input name="Venues" placeholder="Your Email" id="Venues">
        <input name="date" placeholder="Your Email" id="date">
    </p>
    <table width="812" border="0">
        <tr>
            <td width="366"><span class="asdwd">
           <label>Menu Options</label>
           </span>
            </td>
            <td width="237"><span class="asdwd">
           <label>Number of Guests</label>
         </span>
            </td>
            <td width="195"><span class="asdwd">
           <label>Human Verification</label>
         </span>
            </td>
        </tr>
        <tr>
            <td rowspan="2"><div id="mainContainer">
              <div>
                <select name="custom" id="custom">
                  <option value="t1">t1</option>
                  <option value="t2">t2</option>
                  <option value="t3">t3</option>
                </select>
                <input type="button" id="add_new" value=" + " onClick="addNew();">
              </div>
            </div>                  <p>&nbsp;</p>
          </td>
            <td height="47">
                <input name="guests" id="guests" placeholder="2 + 2 = ? ">
            </td>
            <td>
                <input name="human" placeholder="2 + 2 = ? " id="human">
            </td>
        </tr>
        <tr>
            <td height="47" colspan="2">
                <input id="submit" name="submit" type="submit" value="Submit">
            </td>
        </tr>
    </table>
    </form>

JAVASCRIPT

var counter = 0;

функция addNew (e) {

var countAll = document.getElementsByTagName("select").length - 1;

var lastSelectBox = document.getElementsByTagName("select")[countAll];

var items = lastSelectBox.innerHTML;

// Get the main Div in which all the other divs will be added
var mainContainer = document.getElementById('mainContainer');

// Create a new div for holding text and button input elements
var newDiv = document.createElement('div');

// Create a new text input

var newText = document.createElement('select');
newText.type = "select"; 

newText.innerHTML = items;

//for testing

// Create buttons for creating and removing inputs
var newAddButton = document.createElement('input');
newAddButton.type = "button";
newAddButton.value = " + ";

var newDelButton = document.createElement('input');
newDelButton.type = "button";
newDelButton.value = " - ";

// Append new text input to the newDiv
newDiv.appendChild(newText);

// Append new button inputs to the newDiv
newDiv.appendChild(newAddButton);
newDiv.appendChild(newDelButton);

// Append newDiv input to the mainContainer div
mainContainer.appendChild(newDiv);

// Add a handler to button for deleting the newDiv from the mainContainer
newAddButton.onclick = addNew;

newDelButton.onclick = function() {
        mainContainer.removeChild(newDiv);
};
};

PHP

  <?php
$name = $_POST['name'];
$email = $_POST['email'];
$number = $_POST['number'];
$Occasion = $_POST['Occasion'];
$Venues = $_POST['Venues'];
$date = $_POST['date'];
$guests = $_POST['guests'];
$custom = $_POST['custom'];
$from = $email; 
$to = '[email protected]'; 
$subject = 'New Menu Order';
$human = $_POST['human'];

$body = "From: $name\n Contact Number: $number\n E-Mail: $email\n Occasion: $Occasion\n  
Venues Looked At: $Venues\n Event Date: $date\n Number of Guests: $guests\n Custom    
Menu:\n $custom";

 if ($_POST['submit']) {
 if ($name != '' && $email != '') {
    if ($human == '4') {                 
        if (mail ($to, $subject, $body, $from)) { 
        echo '<h4>Your message has been sent!</h4>';
    } else { 
        echo '<h4>Something went wrong, go back and try again!</h4>'; 
    } 
} else if ($_POST['submit'] && $human != '4') {
    echo '<h4>You answered the anti-spam question incorrectly!</h4>';
}
 } else {
    echo '<h4>You need to fill in all required fields!!</h4>';
 }
 }
 ?>
  • 0
    Добро пожаловать на StackOverflow, сайт вопросов и ответов для вопросов программирования. Ваш вопрос, кажется, просит кого-то сделать вашу работу за вас. Это оффтоп в StackOverflow, и вам следует подумать о том, чтобы нанять кого-нибудь для этой работы. Если это не так, добавьте к своему вопросу, с какой конкретной проблемой вы столкнулись и что вы пытались исправить, и обрежьте свой код, чтобы мы могли заново создать эту проблему, не выполняя тонны другого кода.
Теги:
forms
email

2 ответа

0
Лучший ответ

Сначала удалите <form>, дважды в вашем html-документе.

Как я ответил на ваш предыдущий вопрос.

Теперь, если вы хотите получить все значения параметров выбора, вы должны добавить ко всему атрибуту имени раскрывающегося text[]. Поэтому PHP будет знать, что этот ключ является массивом.

Вы все еще можете видеть обновленную скрипту и проверять ее, вы увидите, что все имя окна выбора одинаково, потому что они обрабатывают массив, вставляя [] перед атрибутом name, см. Jsfiddle.

Для php вы должны сделать что-то вроде этого:

PHP:

    <?php
    $name = $_POST['name'];
    $email = $_POST['email'];
    $number = $_POST['number'];
    $Occasion = $_POST['Occasion'];
    $Venues = $_POST['Venues'];
    $date = $_POST['date'];
    $guests = $_POST['guests'];
    $custom = $_POST['custom'];
    $from = $email; 
    $to = '[email protected]'; 
    $subject = 'New Menu Order';
    $human = $_POST['human'];
    $body = '';

    $body = "From: $name\n Contact Number: $number\n E-Mail: $email\n Occasion: $Occasion\n  
    Venues Looked At: $Venues\n Event Date: $date\n Number of Guests: $guests\n Custom    
    Menu:\n $custom";

if (is_array($_POST['text'])) {
        $count = 0;
        foreach ($_POST['text'] as $key => $text) {
            $body .= "Option " . $key . ": " . $text . "\n";
            $count++;
        }
    }

     if ($_POST['submit']) {
     if ($name != '' && $email != '') {
        if ($human == '4') {                 
            if (mail ($to, $subject, $body, $from)) { 
            echo '<h4>Your message has been sent!</h4>';
        } else { 
            echo '<h4>Something went wrong, go back and try again!</h4>'; 
        } 
    } else if ($_POST['submit'] && $human != '4') {
        echo '<h4>You answered the anti-spam question incorrectly!</h4>';
    }
     } else {
        echo '<h4>You need to fill in all required fields!!</h4>';
     }
     }
    ?>

Добавить выше код после

$body = "From: $name\n Contact Number: $number\n E-Mail: $email\n Occasion: $Occasion\n  
Venues Looked At: $Venues\n Event Date: $date\n Number of Guests: $guests\n Custom    
Menu:\n $custom";

Вы получите список значений всех selectboxes с именем text[]

  • 0
    ура за это, я обновил JS и PHP, из-за которых мне выдается эта ошибка "array (2) {[0] => string (2)" t3 "[1] => string (2)" t2 "} "
  • 0
    Это не ошибка, это массив значений, которые вы получили из списка выбора. Вы должны пройти через массив.
Показать ещё 11 комментариев
0

Для каждого добавляемого окна выбора укажите его имя:

var select = document.createElement("select");
select.name = "abc";

Вы можете ссылаться на это на PHP следующим образом:

$val = $_POST["abc"];

Для каждого добавляемого параметра дайте ему значение:

var option = document.createElement("option");
option.value = "test";
option.innerHTML = "Opt 1";

select.appendChild(option);

Когда вы выберете "Opt 1", abc будет отправлен со значением "test".

  • 0
    спасибо за то, что вы не возражаете добавить его в живой код или все в один javascript? Я очень простой, когда дело доходит до JavaScript. Спасибо за помощь
  • 0
    @ user2999825 какую часть тебе нужно написать?
Показать ещё 10 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню