0

古い方法で新しいレコードを追加するページがありますajax、このコードは新しいレコードを追加してエラーまたは完了結果メッセージを返します。メッセージをdivに出力し、結果を他のdivに出力するにはどうすればよいですか。私は試しますが、誰かがJOSNを使用するように教えてくれます、どうすればそれを行うことができますか

<script language="JavaScript">
$(document).ready(function() {
});
$("#closeerr").live('click', function() {
    $("#gadget").hide();
});

       var HttPRequest = false;

       function doCallAjax(Mode,Page,ID) {
          HttPRequest = false;
          if (window.XMLHttpRequest) { // Mozilla, Safari,...
             HttPRequest = new XMLHttpRequest();
             if (HttPRequest.overrideMimeType) {
                HttPRequest.overrideMimeType('text/html');
             }
          } else if (window.ActiveXObject) { // IE
             try {
                HttPRequest = new ActiveXObject("Msxml2.XMLHTTP");
             } catch (e) {
                try {
                   HttPRequest = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {}
             }
          } 

          if (!HttPRequest) {
             alert('Cannot create XMLHTTP instance');
             return false;
          }

          var url = 'AjaxItemsGroupsRecord.php';
          var pmeters = "titems_groups_GroupName=" + encodeURI( document.getElementById("items_groups_GroupName").value) +
                        "&titems_groups_sys_type_ID=" + encodeURI( document.getElementById("items_groups_sys_type_ID").value ) +
                        '&myPage='+Page +
                        "&tID=" + ID +
                        "&tMode=" + Mode;

            HttPRequest.open('POST',url,true);

            HttPRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
            HttPRequest.setRequestHeader("Content-length", pmeters.length);
            HttPRequest.setRequestHeader("Connection", "close");
            HttPRequest.send(pmeters);


            HttPRequest.onreadystatechange = function()
            {

                 if(HttPRequest.readyState == 3)  // Loading Request
                  {
                   document.getElementById("mySpan").innerHTML = "looding";
                  }

                 if(HttPRequest.readyState == 4) // Return Request
                  {
                   document.getElementById("mySpan").innerHTML = HttPRequest.responseText;
                  }

            }

       }
    </script>  
4

1 に答える 1

0

jQueryがオプションの場合...私のコメントで述べたように、 JavaScriptにかなり慣れていないように見えるので、jQueryhttp ://jquery.com/を試してみることをお勧めします。XMLHttpRequestこれにより、AJAXリクエストが非常に簡単になり、クロスブラウザで作業することを心配する必要がなくなります。

実際のAJAXリクエストの作成については、http://api.jquery.com/jQuery.ajax/を参照してください。

ここで、JSONを使用する場合は、データを変換してPHPスクリプトで返す必要があります。これは本当に簡単です。データを渡すだけで、json_encode()データがJSON文字列に変換されます。次に、それをエコーアウトして、AJAXリクエストに返されるようにします。

echo json_encode($data);

これで、JSON応答を期待するようにAJAXリクエストを設定した場合、戻ってきたデータを使用できます。だからこのようなもの:

$.ajax({
    url: 'request.php',    // the php you want to call
    dataType: 'json'       // the type of data being returned
}).done(function(json) {
    // you now have a json object
});

ネイティブJavaScriptしか使用 できない場合...jQueryを使用できない場合は、ほぼ同じように機能します。例には、AJAXリクエストのコードが含まれています。あなたはまだjson_encode()PHPで使用します。唯一の違いは、データが戻ってきたときに、次のように解析する必要があることです。

JSON.parse(json);

この最後のビットチェックアウトの詳細については、JavaScriptでJSONを解析しますか?

于 2012-11-21T20:34:45.080 に答える