2015-04-04 5 views
0

Так что мне нужно реализовать форму отправки информации AJAX. Я использую этот пример, созданный ребятами из Treehouse ... http://blog.teamtreehouse.com/create-ajax-contact-formФорма контакта AJAX - Добавление полей + Несколько форм Одна страница

Первая часть вопроса ... Как добавить новые поля? Я пробовал редактировать .php .js и .html, получив их все в соответствии с тем, что, как я считаю, прав, но при тестировании моего решения не удается.

Поля ввода требуют ... Имя: Адрес: Почтовый индекс: Дата рождения: URL Ссылка: сообщение (200 слов):

Вторая часть ... Могу ли я запустить два из них на на той же странице?

Заранее благодарим за любую помощь! - Вы можете отправить мне [email protected], если вы хотите, чтобы я отправить код и т.д.

КОД НИЖЕ -

   <form id="ajax-contact" method="post" action="mailer.php"> 

       <div class="field"> 
       <label for="name">Name:</label> 
       <input type="text" id="name" name="name" required> 
       </div> 

       <div class="field"> 
       <label for="email">Email:</label> 
       <input type="email" id="email" name="email" required> 
       </div> 

       <div class="field"> 
       <label for="link">Link:</label> 
       <input type="text" id="link" name="link" required> 
       </div> 


       <div class="field"> 
       <label for="message">Message:</label> 
       <textarea id="message" name="message" required></textarea> 
       </div> 

       <div class="field"> 
       <button type="submit">Send</button> 
       </div> 

       </form>  

JS

$(formMessages).text(response); 
     // Clear the form. 
     $('#name').val(''); 
     $('#email').val(''); 
     $('#link').val(''); 
     $('#message').val(''); 
    }) 
    .fail(function(data) { 
     // Make sure that the formMessages div has the 'error' class. 
     $(formMessages).removeClass('success'); 
     $(formMessages).addClass('error'); 

PHP

<?php 
// My modifications to mailer script from: 
// http://blog.teamtreehouse.com/create-ajax-contact-form 
// Added input sanitizing to prevent injection 

// Only process POST reqeusts. 
if ($_SERVER["REQUEST_METHOD"] == "POST") { 
    // Get the form fields and remove whitespace. 
    $name = strip_tags(trim($_POST["name"])); 
      $name = str_replace(array("\r","\n"),array(" "," "),$name); 
    $email = filter_var(trim($_POST["email"]), FILTER_SANITIZE_EMAIL); 
    $message = trim($_POST["message"]); 

    // Check that data was sent to the mailer. 
    if (empty($name) OR empty($message) OR !filter_var($email, FILTER_VALIDATE_EMAIL)) { 
     // Set a 400 (bad request) response code and exit. 
     http_response_code(400); 
     echo "Oops! There was a problem with your submission. Please complete the form and try again."; 
     exit; 
    } 

    // Set the recipient email address. 
    // FIXME: Update this to your desired email address. 
    $recipient = "[email protected]"; 

    // Set the email subject. 
    $subject = "A Future Bubbler… $name "; 

    // Build the email content. 
    $email_content = "Name: $name\n"; 
    $email_content .= "Email: $email\n\n"; 
    $email_content .= "Link: $link\n"; 
    $email_content .= "Message:\n$message\n"; 

    // Build the email headers. 
    $email_headers = "From: $name <$email>"; 

    // Send the email. 
    if (mail($recipient, $subject, $email_content, $email_headers)) { 
     // Set a 200 (okay) response code. 
     http_response_code(200); 
     echo "Thank You! Your message has been sent."; 
    } else { 
     // Set a 500 (internal server error) response code. 
     http_response_code(500); 
     echo "Oops! Something went wrong and we couldn't send your message."; 
    } 

} else { 
    // Not a POST request, set a 403 (forbidden) response code. 
    http_response_code(403); 
    echo "There was a problem with your submission, please try again."; 
} 

?>

+0

Поскольку вы попытались редактировать файлы, добавить попытку код на свой вопрос. – Sean

+0

Добавил Шон, сожалею об этом, должен был подумать. –

+0

Это похоже на исходный код. Где ваша попытка изменить или изменить его? Поскольку вы хотите добавлять/изменять входы, вам необходимо внести изменения во все 3 блока кода (html, js, php). – Sean

ответ

0

Вы никогда не определяете $ link. Вам нужно добавить $ link = trim ($ _ POST ['link']); перед $ message = trim ($ _ POST ["message"]) ;. - Шон 4 апреля в 20:50

- Шон, генеральный директор Worldstar