3

誰かが送信したときに、既存のフォームにデータを追加しようとしています。

function submitCustOpts() {
var custoptsids=new Array(".implode(",",$optids).");
var pfrm=document.forms['promotion".$promo_data["promo_id"]."'];

for(var i in custoptsids) {
    selectedVal = $('#'+custoptsids[i]).val();

    var input = $('<input>').attr(
    {
        type: 'hidden',
        name: 'cf_'+custoptsids[i],
        value: selectedVal
    }).appendTo(pfrm);
}
pfrm.submit();
}

すべてが機能します。なので前半は無視。フォームへの追加で取得できない部分。custoptsids[i] は ID を保持し、selectedVal は値を保持します。すべてうまく機能していますが、これを多次元配列に入れる必要があります。現在、次のように送信されます。

<!-- REQUEST: Array
(
    [promo_id] => 164792
    [station_id] => 2478
    [lang] => en
    [cf_28] => 55
    [cf_29] => 61
    [PHPSESSID] => 375ee178f5de3blahblahblah
)
-->

次のようになります。

<!-- REQUEST: Array
(
    [promo_id] => 164792
    [station_id] => 2478
    [lang] => en
    [cf] => Array
        (
            [28] => 55
            [29] => 60
        )

    [PHPSESSID] => 375ee178f5de3blahblahblah
)
-->

したがって、私の質問は、これらの値を cf 配列に入れる方法です。

4

1 に答える 1

2

また、あなたが本当に「解決策」からの一歩であった場合も、喜んでお手伝いします。解決策は、「しばらく一時停止する」、「コーヒー/紅茶を飲む」、コードに戻ることです。とにかく:

var input = $('<input>').attr(
{
    type: 'hidden',
    // name: 'cf_'+custoptsids[i], <- look twice :)
    name: 'cf['+custoptsids[i]+']',
    value: selectedVal
}).appendTo(pfrm);

私にとっても同じです。毎回。お役に立てて嬉しいです。

于 2013-05-10T19:53:17.490 に答える