Форма Jquery + PHP - Несколько получателей на основе выбора флажка - PullRequest
0 голосов
/ 20 января 2012

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

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


x Хотелось бы узнать о летной школе
x Я заинтересован в том, чтобы стать учителем
x Я хотел бы, чтобы кто-то связался со мной по поводу ваших степеней

Имя
Email
Комментарии


И поэтому в зависимости от того, какие флажки выбраны, он должен добавить этого получателя в функцию электронной почты, чтобы он получал комментарии и интерес пользователей.

Форма проверена jquery и использует функцию $ .ajax для отправки полей Name, Email и Comments в process.php ... мы проверяем, что хотя бы один из флажков выбран, однако мы не удалось выяснить, как передать его логическое значение в process.php и, в свою очередь, добавить соответствующий адрес электронной почты в функцию mail ().

Я понимаю, что это почти неопределенно без публикации нашего кода, но у меня нет доступа к нему сейчас ... и я искал в Google около 30 минут, пытаясь найти что-то, с чем можно работать. Любая помощь будет оценена. Спасибо.

Ответы [ 4 ]

0 голосов
/ 20 января 2012

Вы можете просто присвоить одно и то же имя всем флажкам, что фактически приводит к массиву флажков.

<form name="someform" onsubmit="return validate(this)" action="process.php" method="post">
    <input type="checkbox" name="names[]" value="Saji">Saji
    <input type="checkbox" name="names[]" value="Muhaimin">Muhaimin
    <input type="checkbox" name="names[]" value='Muhsin'>Muhsin
    <input type="submit" value="Submit">
    <input type="reset" value="Reset">
</form>

В process.php вы могли бы иметь -

    $name_val=$_POST['names'];
    foreach($name_val as $values){
      //Here $values will contain only the values of the checkboxes you had selected.
      echo $values."<br />";
    }
0 голосов
/ 20 января 2012

Назовите ваши элементы в виде массива следующим образом:

<input type="checkbox" name="mybox[]" value="foo@example.com">Foo</input>
<input type="checkbox" name="mybox[]" value="bar@example.com">Bar</input>
<input type="checkbox" name="mybox[]" value="hello@example.com">Hello</input>
<input type="checkbox" name="mybox[]" value="world@example.com">World</input>

После размещения формы в PHP, $_POST['mybox'] будет массивом, содержащим значения отмеченных флажков.

В вашем PHP

if(isset($_POST['my_box']))
{
    $subject = "sub";
    $body = "body";
    if (is_array($_POST['mybox']))
    {
        //multiple items were selected.
        $to = implode(',',$_POST['my_box']);

        mail($to,$subject,$body);
    }
    else    //only one item was selected
    {
        echo $_POST['my_box'];
        $to = $_POST['my_box'];
        mail($to,$subject,$body);
    }
}
else
    //none were selected
0 голосов
/ 20 января 2012

Казалось бы, это ответ на ваш вопрос флажок.(/735594/kak-peredat-neskolko-flazhkov-s-pomoschy-jquery-ajax-post)

В основных терминах он будет публиковать массив обратно в php-скрипт, который затем можно будет проанализировать, и в зависимости от того, что было отмечено / переданы переменные, вы можете добавить дополнительные адреса электронной почты к «to»часть почтовой функции.

Для более простой реализации вы можете просто оставить свои три флажка отдельно, а не в массиве, и ajax отправить их обратно индивидуально. HTML

<input type='checkbox' name='flight' value='1' id='flight' />
<input type='checkbox' name='teacher' value='1' id='teacher' />

Затем просто насервер через PHP

$to="";
if($_POST['teacher'] == 1) {$to = $to."joe@email.com,"};//append email
if($_POST['flight'] == 1) {$to = $to."bob@email.com,"};//append email
$to = rtrim($to, ","); //remove trailing comma

ПРИМЕЧАНИЕ , как и для всех сценариев от веб-почты, убедитесь, что вы очищаете все переменные во избежание злоупотребления спамом!

0 голосов
/ 20 января 2012

Вы можете просто проверить, является ли полученное значение истинным или нет:

основная идея:

if(checkbox-1-ischecked)
    //send email to first recipent
end if
if(checkbox-2-ischecked)
    //send email to 2nd recipent
end if
if(checkbox-3-ischecked)
    //send email to 3rd recipent
end if
if(checkbox-4-ischecked)
    //send email to 4th recipent
end if

Etc

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...