0

お問い合わせフォームを作成し、フォームの内容をmail.phpファイルで送信するように設定しました。現時点では、エコーとダイを介して新しい空白のページに成功/エラーメッセージが表示されますが、代わりに現在のページにポップアップする何らかの通知が必要です。

私が使用したいソリューションはhttp://www.sandbox.timbenniks.com/projects/jquery-notice/ですが、そのサイトのデモでは、ボタンに通知を追加する例を使用しています。私がする必要があるのは、エコーまたはダイ出力メッセージの代わりに通知を追加することです。これは可能ですか?

これが私が使用しているmail.phpコードです...

<?php $name = $_POST['name'];
  $email = $_POST['email'];
  $phone = $_POST['phone'];
  if (isset($_POST['service'])) {
    $service = $_POST['service'];
    // $service is an array of selected values
  }
  $message = $_POST['message'];
  $formcontent=" Message received from wwww.jhnormanandsons.co.uk: \n \n From: $name \n Phone: $phone \n \n Service required: $service \n \n Message: $message";
  $recipient = "jasonbradberry@gmail.com";
  $subject = "You have a new message from $name";
  $mailheader = "From: $email \r\n";
  mail($recipient, $subject, $formcontent, $mailheader) or die("Error!");
  echo ("Thank you for your message. We'll be in touch as soon as we can.");
?>

これがフォームHTMLです...

<form id="contact-form" method="post" action="mail.php" name="jh_contact">
  <input type="text" id="name" name="name" placeholder="Name" required />
  <input type="email" id="email" name="email" placeholder="Email" required />
  <input type="tel" id="phone" name="phone" placeholder="Phone" required />
  <textarea id="message" name="message" placeholder="Message" required ></textarea>
  <select name="service">
    <option>Service required</option>
    <option value="MOT">MOT</option>
    <option value="Service / repairs">Service / repairs</option>
    <option value="Cars for sale">Cars for sale</option>
    <option value="Welding">Welding</option>
    <option value="Exhausts">Exhausts</option>
    <option value="Tyres">Tyres</option>
    <option value="Brakes">Brakes</option>
    <option value="Diagnostics">Diagnostics</option>
    <option value="Vehicle checks">Vehicle checks</option>
    <option value="Courtesy car">Courtesy car</option>
    <option value="Advice">Advice</option>
    <option value="Other">Other</option>
  </select>
  <input type="submit" value="Send" id="submit-button" name="submit" />
</form>

ありがとう!

4

2 に答える 2

0

JavaScriptを無効にしてフォームを機能させてから、jQueryを使用してフォームをページにPOSTし、通常の成功メッセージをそのように解析します。

<?php
if (isset($_POST['send'])) {
    // process form
    if ($sent === true) {
        $alert_class = 'success';
        $alert_test = 'Your enquiry was sent successfully.';
    }
    else {
        $alert_class = 'error';
        $alert_text = 'There was an error sending your enquiry.';
    }
}
?>
<!DOCTYPE html>
<html>
  <body>
<?php if (isset($alert_text)): ?>
    <div class="alert <?php echo $alert_class; ?>">
      <p><?php echo $alert_text; ?></p>
    </div>
<?php endif; ?>
    <form action="" method="post" id="contact-form">
      <!-- your form -->
    </form>
  </body>
</html>

そして、jQuery:

(function($) {
    $('#contact-form').submit(function() {
        $.post($(this).attr('action'), $(this).serialize(), function(response) {
            var alert_text = $(response).find('.alert').text();
            alert(alert_text);
        });
        return false;
    });
})(jQuery);

お役に立てば幸いです。

于 2012-09-14T12:14:48.140 に答える
0

Jquerypostを使用してフォームを送信します。通知メッセージを取得してjsonとして表示します...

http://api.jquery.com/jQuery.post/

この行を検索して、jqueryを使用してフォームを送信します

「例:ajaxリクエストを使用してフォームデータを送信する」...

応答時に..このコードを記述します(追加された通知リンクから取得)

jQuery.noticeAdd({text:data、//通知メッセージ滞在:true});

于 2012-09-14T12:16:45.043 に答える