0

PHPとPrototype JSを使用して構築されたアプリがあります。大きなフォームの一部を形成する 2 つのチェーンされた選択ボックスがあります。ユーザーが最初の選択ボックスの値を変更すると、Prototype Ajax Updater リクエストが起動され、2 番目の選択ボックスに表示する値のリストが取得されます。

landlordId = $F('landlord_id');
branchId = $F('branch_id');
new Ajax.Updater('landlord_branches_div', baseUrl+"/landlord/getLandlordBranches", {
    method:'post', postBody:'landlord_id='+landlordId +'&branch_id='+ branchId,
});

これにより、2 番目の選択ボックスに入力された HTML ブロックが返されます (たとえば、これが Firebug によって返されるものであることがわかります)。

<select name="branch_id" id="branch_id" >
    <option value="all" selected="selected">All Branches</option>
    <option value="99" selected>HORDEN</option>
</select>

ただし、上記の ajax リクエストの後に (通常のフォーム送信を介して) フォームが送信されると、(2 番目の選択ボックスで設定された) branch_id がポストから欠落します。ロードされた最初のページが 2 番目の選択ボックスで ajax の更新をトリガーせずに送信された場合、ポスト OK に存在します。

皮肉なことに、IE では問題なく動作しますが、たとえば Chrome や Firefox では動作しません。

誰かがこれに光を当てることができれば幸いです。

前もって感謝します。

4

2 に答える 2

0

試す:

    landlordId = $F('landlord_id');
branchId = $F('branch_id');
new Ajax.Updater('landlord_branches_div', baseUrl+"/landlord/getLandlordBranches", {
    method:'post',
    parameters:{ landlord_id: landlordId, branch_id: branchId}
});
于 2012-07-25T18:07:20.157 に答える