1

次のようなAJAXデータを介して送信する必要があります。

<tr>
<td><input type="textbox" value="12" name="delay[256]"></td>
<td><input type="checkbox" value="256" name="attach_to[]"></td>
</tr>                       
<tr>
<td><input type="textbox" value="7" name="delay[653]"></td>
<td><input type="checkbox" value="653" name="attach_to[]"></td>
</tr>

これらの2つのタイプの入力をエンコードするための最良の方法はどれですか?

$.post(
window.location.href,
{
    data_ajax: 1,
    attach_to : attach_to, // how encode?
    delay: delay // how encode?

},
function(array) {
},
'json'
);

OBS:フォーム全体ではなく、これらのデータのみを送信したいのです。したがって.serialize()、適切ではないようです。

4

2 に答える 2

0

私の解決策:

jsコード:serialize()フォーム全体または特定の要素に対して機能します。

var attach_to = $("input[name='attach_to[]']").serialize();
var delay = $("input[name^='delay[']").serialize();
$.post(
    window.location.href,
    {
        attach_to : attach_to,
        delay: delay
    },
    function(array) {
        // ...
    },
    'json'
    );

phpコード:parse_str着信変数を簡単にデコードするための鍵です。

parse_str($_REQUEST['delay'], $params);
$delay = $params['delay'];
parse_str($_REQUEST['attach_to'], $params);
$attach_to = $params['attach_to'];
于 2012-07-03T13:25:48.717 に答える
0

データをJSONとしてエンコードする方法については、この回答を参照してください:JavascriptオブジェクトをJson文字列にエンコードする

次に、投稿されたJSON変数をPHPで配列に戻します:http://php.net/manual/en/function.json-decode.php

于 2012-07-02T20:24:57.637 に答える