63944


ajaxで配列データを渡したいのでうまくいっていません。  
下記のようなコードを実行すると、PHPで `$_GET` を出力すると結果が

[code]

    array(
      [test_input%5Bhome%5D] =chintai,
      [val] => 99
    )
    
[/code]

となってしまいます。理想としては

[code]

    array(
      [test_input] => array (
         [home] => chintai,
      )
        [val] => 99
    )
    
[/code]

となってほしいのですがどのように修正すればよいでしょうか。Jqueryのバージョンは1.9です。

[code]

    var test_input ={};
    var paramName ='home';
    test_input[paramName] = 'chintai';
    
    $.ajax({
        type: "GET",
        url: "割愛",
        data: { 
            test_input,
            val: 99 },
        dataType : "json",
    
    success: function (data) {
        $("#results").append(data);
    },
    error: function () {
        alert("読み込み失敗");
    }
    });
    
[/code]


CC BY-SA 4.0
2020-03-17T11:33:31.343
63932
2020-03-17T16:44:34.660
2020-03-17T11:43:26.863
3060
17348
question
php jquery
ajaxで意図した配列データを渡したい


以下のような dataを指定すると
urlエンコードされたパラメーターは、`/?argv={"test_input":{"home":"chintai"},"val":99}`として送信されます。

[code]

     data:{"argv":'{"test_input":{"home":"chintai"},"val":99}'},
    
[/code]

または、 `data:{"argv":オブジェクト変数},` でも同様に送れると思います。

だだし、`＄_GET['argv']` の文字列（json）を json_decodeすると{}で囲まれているので、以下のような
オブジェクト（stdClass Object）になります。

[code]

    stdClass Object
    (
        [test_input] => stdClass Object
            (
                [home] => chintai
            )
    
        [val] => 99
    )
    
[/code]


CC BY-SA 4.0
2020-03-17T16:35:52.437
63944
2020-03-17T16:44:34.660
2020-03-17T16:44:34.660
22793
22793
63932
answer