3

PHPで配列を作成しました。jqueryでデータを取得したいだけです

support.php の配列は次のとおりです。

$postData = array(
        "error" => $error,
        "successInfo" => $successInfo,
        "email" => $_POST["email"],
        "subject" => $_POST["subject"],
        "description" => $_POST["description"],
);

echo json_encode($postData);

jquery.getJSONを使用してjavascript側で何をすればよいですか?

前もって感謝します!

4

4 に答える 4

9

何をしたいかによって大きく異なりますが、これは要素キーにアクセスする基本的な方法です。「data.email」など、各要素キーに単純にドット演算子を使用できます。

$.ajax({
    type: 'POST',
    url: 'support.php',
    success: function(result) {
        var data = jQuery.parseJSON(result);
        alert(data.email);
    }
});

HTML 要素に挿入:

id="landingPad" で div を作成し、アラート行を次のように置き換えました。

$('#landingPad').html(data.email);

受信したデータのリストを作成します:

次に、div を順序なしリストに変更しました。

<ul id="landingPad"></ul>

成功関数を変更した後、support.php から受け取ったすべてのデータを一覧表示しました。

$(document).ready(function(){
    $.ajax({
        type: 'POST',
        url: 'support.php',
        success: function(result) {
            var data = jQuery.parseJSON(result);
            $.each(data, function(index, value) {
                $("#landingPad").append("<li>" + value + "</li>");
            });
        }
    });
});

AJAX データを使用してフォーム要素を作成する:

次に、次のフォームを作成しました。

<form name="http://example.com/edit_my_values" action="post">
    <div  id="landingPad"></div>
    <input type="submit" name="go" value="Edit Values"/>
</form>

次に、AJAX を編集して、受け取った値を使用してオンザフライでフォームを作成しました。

$(document).ready(function(){
    $.ajax({
        type: 'POST',
        url: 'support.php',
        success: function(result) {
            var data = jQuery.parseJSON(result);
            $.each(data, function(index, value) {
                $("#landingPad").append('<input type="input" name="'+index+'" value="'+value+'"/><br/>');
            });
        }
    });
});

既存のフォームにデータを挿入:

次の形式を考えます。

<form name="http://example.com/edit_my_values" action="post">
    <label for="error">Error </label><input type="text" name="error"/><br/>
    <label for="successInfo">Success </label><input type="text" name="successInfo"/><br/>
    <label for="email">Email </label><input type="text" name="email"/><br/>
    <label for="subject">Subject </label><input type="text" name="subject"/><br/>
    <label for="description">Description </label><input type="text" name="description"/><br/>
</form>

次のように、フィールドに AJAX データを入力できます。

$(document).ready(function(){
    $.ajax({
        type: 'POST',
        url: 'support.php',
        success: function(result) {
            var data = jQuery.parseJSON(result);
            $.each(data, function(index, value) {
                $('[name='+index+']').val(value);
            });
        }
    });
});
于 2013-01-11T16:05:00.973 に答える
2

この方法で配列にアクセスできます

$.ajax({
      type: 'POST',
      url: 'support.php',
      success: function(result) {
        $('#content1').html(result[0]);
      },
  });
于 2013-01-11T15:49:12.883 に答える
1

jQuery

success: function(result) {
   var obj = jQuery.parseJSON(result);
   alert(obj.link);
}

注: jQuery.parseJSON()関数を使用して、エラーを発生させずにすべてのデータを取得します。

php

ヒント: 配列にhtml タグが含まれている可能性がある場合は、次のようにデータをエンコードします。

$data['success']='1';
$data['link']="<a href='http://stackoverflow.com/' target='_blank' style='color:#68dff0'>Click Here</a>";
echo json_encode($data, JSON_HEX_QUOT | JSON_HEX_TAG);
于 2015-12-03T09:54:19.107 に答える
0

これが完全に機能するバージョンです。

<!DOCTYPE html>
<html lang="en">
    <head>

        <title>HTML</title>

        <script src="http://code.jquery.com/jquery-latest.min.js"></script>

        <script>
            $(document).ready(function(){
                $("#submit").click(function(){
                    fn_val=$('#fn').val(); 
                    ln_val=$('#ln').val(); 
                    $.ajax({
                        type: 'POST',
                        url: 'resp.php',
                        data : {fn: fn_val , ln: ln_val},
                        success: function(result) {
                            var data = $.parseJSON(result);
                            $("#the_results").append('Associative array returned' + '<BR>');
                            $.each(data, function(index, value) {
                                $("#the_results").append("index =  " + index + ', data = ' + value + '<BR>');
                            });
                        }
                    });
                });
            });
        </script>
    </head>

    <body>
        <div>
            First name: <input type="text" name="fn" id='fn'>
            Last Name: <input type="text" name="ln" id='ln'>
            <button id="submit">Pass Data to PHP</button>
        </div>
        <div id="the_results"></div>
    </body>
</html>

これが html ファイルです。以下は php ファイル resp.php です。

<?php
$resp_arr = array('First Name' => $_POST["fn"], 'Last Name' => $_POST["ln"]);
echo json_encode($resp_arr);
?> 
于 2013-01-12T00:10:33.077 に答える