PHP почта продолжает давать мне неопределенный индекс, помогите? - PullRequest
2 голосов
/ 21 июня 2010

У меня есть скрипт контактной формы, и я добавил в него несколько полей, идентичных остальным, но новые переменные при отправке дают «уведомления» о неопределенном индексе, а переменные не заполняются. Я хватаю их ПОЧТА вот так,

$name     = $_POST['name'];
$website  = $_POST['website'];
$company  = $_POST['company'];
$addy     = $_POST['addy'];
$email    = $_POST['email'];
$phone    = $_POST['phone'];

Имя, адрес электронной почты и телефон все работают, но веб-сайт, адди и компания не работают.

JavaScript, который захватывает это выглядит так,

$.post(action, { 
        name: $('#name').val(),
        email: $('#email').val(),
        website: $('#website').val(),
        company: $('#company').val(),
        addy: $('#addy').val(),
        phone: $('#phone').val(),

..etc

Что может вызвать это? Я не уверен, какой другой код будет полезен, спасибо.

РЕДАКТИРОВАТЬ ДОБАВИТЬ HTML.

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

<form method="post" action="send_mail.php" name="contactform" id="contactform">

        <fieldset>

        <legend>Please fill in the following form to contact us</legend>

        <label for=name accesskey=U><span class="required">*</span> Your Name</label>
        <input name="name" type="text" id="name" size="30" value="" /> 

        <br />
        <label for=email accesskey=E><span class="required">*</span> Email</label>
        <input name="email" type="text" id="email" size="30" value="" />

        <br />
        <label for=website accesskey=W>Website</label>
        <input name="website" type="text" id="website" size="30" value="" />

        <br />
        <label for=company accesskey=C>Company</label>
        <input name="company" type="text" id="company" size="30" value="" />

        <br />
        <label for=addy accesskey=A>Address</label>
        <input name="addy" type="text" id="addy" size="30" value="" />

Ответы [ 2 ]

2 голосов
/ 21 июня 2010

Если значения ложные или пустые, сообщение не будет включать эти переменные в вызов AJAX. Рекомендуем использовать isset() в PHP, чтобы проверить, установлены ли переменные:

$name     = isset($_POST['name']) ? $_POST['name'] : '';
etc...

Подробное объяснение

Если у нас в javascript (jQuery) есть следующий код:

$.post('url',{
  'foo': 'bar',
  'baz': $('#nonexisting_element').val(),
   'qux': 'quux'
},...);

#nonexisting_element не существует, он отправит следующее:

foo=bar&qux=quux

и на стороне PHP в массиве PHP появится следующее:

$_POST = array (
    'foo' => 'bar'
    'qux' => 'quux'
);
1 голос
/ 21 июня 2010

jQuery не отправляет поля сообщений с нулевым значением.Так что в вашем случае ошибка, вероятно, в том, что у вас нет полей с заданными идентификаторами website, addy, ....

Возможно, вы забыли добавить атрибут id = ".." или забыли изменить его при копированиистарый код?

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