0

Cakephp v2.3アプリには、次の2つのモデルがあります。

購入モデル:次のメインフィールドが含まれています:id、invoice_date、gross_amount(Supplier.tax_rateで計算)。

class Purchase extends AppModel {

    public $displayField = 'id';
    public $belongsTo = 'Supplier';
}

サプライヤーモデル:ID、名前、tax_rateが含まれています

class Supplier extends AppModel {
    public $displayField = 'name';
    public $hasMany = 'Purchase';
}

これは、PurchasesControllerの追加ビューがどのように見えるかです。 ここに画像の説明を入力してください

Supplier.tax_rateここで、現在選択されているサプライヤapp/View/Purchase/add.ctpをラベルまたはテキスト入力として表示したいと思います。

これを行う方法はありますか?

4

2 に答える 2

0

Jqueryを使用して、選択ボックスの変更時の税率を検索します。詳細については、JsHelper(http://book.cakephp.org/2.0/en/core-libraries/helpers/js.html)を参照してください。

これは、私の1.3アプリの1つに由来するビューコードの例です。もちろん、ロードするには、ヘルパー、jquery、コントローラーコード、その他のビューが必要です。

//helper in view
//observe selectbox for selection, if change, update question.
$js->get('#EntitiesUserPrimarycontactId')->event('change', $js->request(array('controller'=>'users','action'=>'update_previewcontact'),array('update'=>'#step4_results','dataExpression'=>true,
'before' => "$('#step4_results').fadeOut('fast');",
'complete' => "$('#step4_results').fadeIn('slow');,
'data'=>$js->serializeForm(array('isForm' => true, 'inline' => true)) )));
于 2012-10-24T13:02:07.963 に答える
0

私はそれを考え出した。最終的には、すべてのサプライヤー税率データをとしてJSON出力し、それをビューに出力してから、クライアント側のJavaScriptを使用して関連するコードを選択しました。

PurchasesControllerは、SQLクエリを起動してすべてのサプライヤー税率データを取得するカスタムモデルメソッドを呼び出します。

$supplier_tax_rate = $this->Purchase->Supplier->getTaxRate();
$this->set('supplier_tax_rate', json_encode($supplier_tax_rate));

、クライアント側。私はJavascriptを使用して、やりたいことを実行しました。supplier_tax_ratesこれは、JSONの税率データを格納する変数であり、サプライヤーのダウンダウンgetTaxRateに基づいてJSONから税率を返す変数関数です。id

$(function() {
    var taxRates = $.parseJSON(supplier_tax_rates);

    var getTaxRate = function(id) {
        for (var i in taxRates) {
            if (taxRates[i].id == id) {
                return taxRates[i].tax_percentage_charged;
            }
        }
    };
}); 

これは私にとってはうまく機能しました。ドロップダウンの値に基づいて、データベースからデータを取得したい他の人々に役立つことを願っています。

于 2012-10-29T05:11:48.037 に答える