PHP-код для флажка HTML-формы - PullRequest
2 голосов
/ 26 марта 2012

это мой первый раз здесь, поэтому, пожалуйста, потерпите меня ... это моя HTML-форма:

<form method="post" action="contactformprocess.php">
    <input id="name" name="name" type="text" value="" />
    <br />
    <input id="phone" name="phone" type="text" value="  /><br />
    <input id=" email " name="email " type="text " value=" " /><br />
    <textarea rows="5 " id="message " name="message "  cols="20 "></textarea><br />
    <input id="submit " name="submit " value="שלחו " type="submit " ><br />
    <input id="checkbox " type="checkbox " checked="yes " value="i want
    to recive weekly updates from you "/> i want to recive weekly updates from you <br />
</form>

это код php, который я использую:

<?php
    $emailSubject = '.....';
    $webMaster = 'aa@aa';

    $name = $_POST['name'];
    $phone = $_POST['phone'];
    $email = $_POST['email'];
    $message = $_POST['message'];

    $body = <<<EOD
    <br><hr><br>
    Subject: $option<br>
    Name: $name <br>
    Phone: $phone<br>
    Email: $email <br>
    Message: $message <br>
    EOD;
    $headers = "From: $email\r\n";
    $headers .= "Content-Type: text/html; charset=UTF-8\r\n";
    $success = mail($webMaster, $emailSubject, $body,
    $headers);
?>

чтоЯ пропускаю скрипт php, который проверяет, был ли флажок снят (установлен на флажок) или отмечен, и отправляет информацию вместе с другими полями.если отмечено, отправьте «ДА», если снимите флажок, отправьте «НЕТ» или ничего.спасибо :)

Ответы [ 6 ]

2 голосов
/ 26 марта 2012

Пара вопросов ... Ваш флажок не имеет определенного имени, поэтому вы не получите его в сообщении. Вы хотите, чтобы это выглядело больше как:

<input id="checkbox" type="checkbox" name="updates" checked="checked" value="yes"/> i want to recive weekly updates from you <br />

Если флажок не установлен, он не будет включен в сообщение, поэтому ваш php может быть:

$updates = isset($_POST['updates']) ? 'Yes' : 'No';
1 голос
/ 26 марта 2012

В форме измените код вашего флажка, чтобы он выглядел следующим образом:

<input id="weekly_updates" name="weekly_updates" type="checkbox" checked="yes" value="yes" />I want to recive weekly updates from you!<br />

Добавьте в ваш код PHP:

$weekly_updates = ( strtolower($_POST['weekly_updates']) === 'yes' ) ? 'Yes' : 'No';

Если этот код PHP выглядит запутанным, взгляните на документацию по PHP для Тернарного оператора, найденную здесь: http://php.net/manual/en/language.operators.comparison.php

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

OK, вот список ошибок, которые я нашел:

1) У вас нет атрибута name для флажка

2) checked Значение атрибута "проверено".это неправильно => checked="yes"

3) У вас нет подтверждения для флажка

0 голосов
/ 26 марта 2012

Измените HTML на:

<input id="checkbox" type="checkbox" checked="yes" name="updates">

Добавьте этот код в ваш PHP:

if(isset($_POST["updates"]) and $_POST["updates"]=="on") $body.="Updates: Yes <br>\n";
0 голосов
/ 26 марта 2012

Если флажок не установлен, переменная просто не установлена.Кроме того, вам не хватает атрибута «имя» в флажке.

Итак: $checked = (isset($_POST['checkboxname']))? 'yes' : 'no'; будет работать.Кроме того, вы можете добавить value='value' к флажку и добавить в оператор if && $_POST['checkboxname'] == 'value'.

0 голосов
/ 26 марта 2012

HTML:

<input type="checkbox" checked="checked" name="receive_updates" />

PHP:

$receive_updates = isset($_POST['receive_updates']) ? "YES" : "NO";

Если пользователь установил ваш флажок, ваша форма будет содержать значение $_POST["receive_updates"] == "on".Если пользователь не установил ваш флажок, запрос вообще не будет содержать $_POST["receive_updates"].Таким образом, вы можете легко проверить с помощью isset, установлен ли флажок пользователем.

...