PHP MAIL CHECKBOX $ POST - PullRequest
       1

PHP MAIL CHECKBOX $ POST

1 голос
/ 06 марта 2012

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

Я хочу, чтобы значение былоизменить, когда не проверено.Поэтому снятие флажка изменяет значение на «нет» и т. Д.

Вот мой код, что я делаю не так?

<input type="checkbox" name="newsletter" id="newsletter" checked="checked" value="1"/>

Ajax Call здесь: http://pastebin.com/gFGbWZ1D

Php Mail Script здесь: http://pastebin.com/d6hCVmzQ

Приветствия, Майк

Ответы [ 3 ]

1 голос
/ 06 марта 2012

Значение флажка всегда будет равно 1 независимо от того, проверено оно или нет при просмотре значения с помощью jQuery.
Что вам нужно сделать, это посмотреть, если флажок установлен:

var newsletter = $("#newsletter").is(":checked")?1:0;
1 голос
/ 06 марта 2012

Вы должны проверить значение флажка в вашем скрипте PHP Mail и обработать его немного по-другому.

Мой подход заключается в следующем:

if(isset($_POST['newsletter'])&&$_POST['newsletter']==1) $newsletter="yes"; else $newsletter="no";

Вы используетеPHP для определения значения в этом случае, поскольку флажок может иметь только одно значение!Если флажок установлен, это значение будет соответствовать значению html, но в моем примере мы используем значение поля HTML только в нашем операторе if:

if (isset ($ _ POST ['newsletter']))) // проверяет, существует ли этот элемент при отправке формы, а $ _POST ['newsletter'] == 1 // проверяет, установлен ли флажок.Если вы возвращаете значение $ _POST ['newsletter'], оно всегда будет единичным, поэтому вам нужно настроить логику почтового сценария так, чтобы вы использовали стиль типа «если отмечено, то да; в противном случае нет»вещи.

1 голос
/ 06 марта 2012
$('#newsletter').click(function(){
    if($(this).val() == 1) {
        $(this).val('no');

        // I'd recommend doing it this way for consistency sake
        $(this).val(0);
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...