0

私はいくつかのキーと値をjavascript辞書に保存しています

var list_of_addressbook_entries = {};

そして私はその辞書をphpページに渡します

しかし、私がjavascriptdictのキーと値を取得しようとしているとき

 $attendee_list = $_POST['dict_of_externals'];
   $shared_attendee_list = $_POST['list_of_shared_addressbook_entries'];
   $org_attendee_list = $_POST['dict_of_org_users'];

   echo json_encode($attendee_list);


   return false;

応答として、私は取得しているだけです"[object Object]"

PHPで値を抽出する方法を知りたいだけですか?

私のJavaScriptで

for(key in list_of_addressbook_entries)
        {
          alert("key " + key
             + " has value "
          + list_of_addressbook_entries[key]);
        }

キーと値を印刷しています

更新しました

var list_of_addressbook_entries_privilege = [];
function showDetails(guest_name){
        var user_name = "<?php echo $_SESSION["user_name"]; ?>" ;
        var name = prompt("Please use M for moderator and A for attendee", "Type you name here");
        if (!name == null && !name== '' || name == 'M' || name == 'A'){

        var ahtml='<div  id ="div_id_'+guest_name+'" onclick =remove_addressbook_user("'+guest_name+'") class="addr_list" style="display:block; background: none repeat scroll 0% 0% peachpuff;margin-bottom:1px;">'
        ahtml = ahtml + '<span>'+guest_name+'</span>'
        ahtml = ahtml + '<input type = "hidden" id ="user_id_'+guest_name+'"   value = "'+guest_name+'"  /></div>'
        $(".address_book_list").append(ahtml);
        $("#div_id_"+guest_name).hide();
        list_of_addressbook_entries[guest_name] = name ;
        }
        else{
            alert("You have entered the worong value ");
            return false;
        }
        $('#dict_of_externals').val(list_of_addressbook_entries);

        for(key in list_of_addressbook_entries)
        {
          alert("key " + key
             + " has value "
          + list_of_addressbook_entries[key]);
        }


}
4

3 に答える 3

1

キー値のペアをで繰り返すことができるのでfor inlist_of_addressbook_entriesはオブジェクトです。

valueプロパティ内にオブジェクトを配置することはできません。valueプロパティは、文字列のみをサポートします。

したがって、JSはオブジェクトを文字列に変換します。文字列の表現は[object Object]です。

JSONオブジェクトの文字列表現が必要な場合は、次を使用しますJSON.stringify

$('#dict_of_externals').val(JSON.stringify(list_of_addressbook_entries));

後でJSONオブジェクトのプロパティにアクセスする場合は、JSON.parse(またはjQuery.parseJSON)を使用して文字列を再度解析する必要があるため、後でプロパティ値にアクセスする必要がある場合に備えて、オブジェクトをメモリに保持することをお勧めします。

JSON.stringifyIE <= 7をサポートする必要がある場合は、小さなJSライブラリを次に示します:
https ://github.com/douglascrockford/JSON-js

于 2012-09-18T11:52:20.170 に答える
1

Javascript はクライアント上にあり、php はサーバー上で実行されます。JavaScript からサーバーにデータを渡したい場合は、サーバーに AJAX 呼び出しを行うか、フォームを介して渡す必要があります。

どのようにphpコードを呼び出していますか、どのようにデータをサーバーに渡していますか?

于 2012-09-18T11:38:26.620 に答える
0

答えは非常に簡単です。

PHP 関数 json_encode はオブジェクトをエンコードしているため、json オブジェクトをエコーし​​ています。これが、php が [オブジェクト オブジェクト] をエコーし​​ている理由です。

json表記の出力で出力が必要な場合は、次のようにする必要があります

//in case you passed the $attendee_list without encoding
$json_obj = json_encode($attendee_list);

echo json_decode($json_obj);

//otherwise
echo json_decode($attendee_list);

お役に立てば幸いです、乾杯

于 2012-09-18T11:45:59.970 に答える