2

これには3つの要素があります。

  • HTML フォーム
  • フォーム値を送信し、PHP スクリプトからの応答を受信して​​解析する AJAX 接続
  • 値が良い/悪いかどうかを判断し、適切な応答を返す PHP スクリプト (おそらく、javascript 関数による簡単な解析のための XML 形式でしょうか?)

PHP が送信されたデータを見て処理し、それをデータベースに挿入するか、それを処理するとき、javascript が適切なエラー メッセージをユーザーに表示できるように、応答または応答のコレクションを返す必要があります。 . たぶん、悪い入力を持つ要素の周りに赤い境界線や何かを置くこともできます.

これは通常、両端でどのように行われますか? PHP は単純な数値エラー コードを返すだけで、javascript はさまざまな div に適切なテキスト エラー メッセージを設定する必要があると考えています。しかし、私にはよくわかりません。また、答えを見つけるために何をグーグルで検索すればよいかわかりません。

(ところで、私はHTTPエラーコードについて話しているのではありません)

4

3 に答える 3

2

このjquery ajax関数を使用して、データをphpファイルに投稿します
。次に、データを処理して(データベースに送信するか、いくつかのコレクションを作成します)、成功セクション内でキャッチする結果をエコーし​​ます。
次に、結果を div または必要な場所に配置します。

$.ajax({           
            type: "POST",  
            url:"scripts/dummy.php",  
            data:"dummyData="+dummyData,

            beforeSend: function()
            {                   

            },
            success: function(resp)
            {               
                $("#resultDiv").html(resp);
            }, 

            complete: function()
            {

            },

            error: function(e)
            {  
            alert('Error: ' + e);  
            }  

    }); //end Ajax
于 2012-09-20T12:11:24.653 に答える
1

Ajax 連絡フォームの例: (元はオランダ語で、少し古く、コーディングが適切ではありません)

この例では jquery が必要であることに注意してください。jquery.js を Web サイトからダウンロードして、HTML のスクリプトに追加するだけです。

form.html

<form id="frm_contact" name="contactformulier">
<label>Naam<span style="color:red">*</span></label><br/>
<input type="text" size="15" maxlength="50" name="naam" />
<br/><br/>

<label>Bedrijf</label><br/>
<input type="text" size="15" maxlength="50" name="bedrijf" />
<br/><br/>

<label>Email<span style="color:red">*</span></label><br/>
<input type="text" size="15" maxlength="50" name="tmail" />
<br/><br/>

<label>Bericht<span style="color:red">*</span></label><br/>
<textarea name="tekst">
</textarea>
<br/><br/>
(<span style="color:red">*</span>) Required fields!
<br/><br/>
<div id="subbutton">Send</div>
</form>
<div id="error-msg"></div>

form.html (JavaScript コード)

<script>
$(document).ready(function(){
var err="";
$("#subbut").click(function(){
$.post("PHP/ajax_contact.php", $("#frm_contact").serialize(),
function(data){
switch(data){
case '0':
err="<span><center>Thanks for contacting us!</center></span>";
$("#frm_contact").hide();
break;
case '1':
err="Invalid email!";
break;
case '2':
err="Fill in all fields please!";
break;
case '3':
err="Error sending this mail.";
break;
default:
err="<center>Mail server is offline.</center>"; //Or whatever error
$("#frm_contact").hide();
}
$("#error-msg").html("<br/>"+err+"<br/>");
});
});
});
</script>

PHP/ajax_contact.php

<?php

function check_email_address($email) {
  if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
    return true;
}
return false;
}

$naam = trim($_POST['naam']);
$bedrijf = trim($_POST['bedrijf']);
$tmail = trim($_POST['tmail']);
$tekst = trim($_POST['tekst']);
if(isset($naam ) && isset($tmail) && isset($tekst)){
    if(!empty($naam) && !empty($tmail) && !empty($tekst)){
        if(check_email_address($tmail)){
            $to      = 'name@something.com';
            $subject = 'Some subject';
            $message = 'Name: '.$naam.'  ////  Company: '.$bedrijf.'
-------------------------------------------------------
'.$tekst.'
-------------------------------------------------------
Sended on: '.date("F j, Y, g:i a").' - from: www.somthing.com';
            $headers = 'From: '. $tmail . "\r\n" .
                'Reply-To: '. $tmail . "\r\n" .
                'X-Mailer: PHP/' . phpversion();

            mail($to, $subject, $message, $headers);
            echo '0'; //Succes <3
        }else{
            echo '1'; //Invalid mail adres
        }
    }else{
        echo '2'; //Empty fields
    }
}else{
    echo '3'; //Fail post
}

?>
于 2012-09-20T12:31:40.657 に答える
1

あなたが求めているのは検証と呼ばれます。
サーバー側の検証とクライアント側の検証があります。

ユーザーにデータベースを破損させたくないので、最初のものは最も重要です。2 つ目は、お客様にとって重要です。フォーム(赤い枠)で無効なものについて、彼に迅速な対応を与えるためです。

フォームのクライアント側を検証する場合、通常は Javascript を使用して行います。サーバー側の検証では、サーバーとクライアント間の通信として JSON を使用します。PHP と JavaScript の両方がそれを適切に処理する方法を知っているからです。

PHP の場合:
http://php.net/manual/en/function.json-encode.php
http://php.net/manual/en/function.json-decode.php

JS用。結果パラメーターにアクセスするだけです。

   success: function(response){
        var json = $.parseJSON(response.responseText);
   }
于 2012-09-20T12:15:41.743 に答える