2016-09-12 9 views
0

カスタムテンプレート(ウェブサイト)に入力タグを追加しました。私はこのタグをコントローラに送るためにこのタグの値を取得したいと思います。これをURLに追加することで、私はいつも「なし」に戻ります。Odooテンプレートの入力から値を取得

<template id="InputTemp" inherit_id="website_sale.cart"> 
     <xpath expr="//div[@id='right_column']" position="after"> 
      <div class="col-lg-3 col-lg-offset-1 col-sm-3 col-md-3 text-muted" id="inputform"> 
        <h3>Please enter value:</h3> 
        <label class="control-label" for="waardebon">Value</label> 
        <input type="text" name="value_input" class="form-control"/> 
        <a t-attf-href="/cart/#{str(value_input)}" class="btn btn-primary btn-lg mt8">Submit</a> 
      </div> 
     </xpath> 
    </template> 

答えて

2

t-attf-hrefは、フォームフィールドにデータが入力される前にレンダリングされます。それを行うには、javascriptを使ってhrefを更新する必要があります。 odoo9では、requirejs構文を使用してコントローラへのポストリクエストを実行するための適切なライブラリをロードする必要があります。 get要求を使用しているだけの場合は、次のようにしてください。

<template id="InputTemp" inherit_id="website_sale.cart"> 
    <xpath expr="//div[@id='right_column']" position="after"> 
     <div class="col-lg-3 col-lg-offset-1 col-sm-3 col-md-3 text-muted" id="inputform"> 
       <h3>Please enter value:</h3> 
       <label class="control-label" for="waardebon">Value</label> 
       <input type="text" name="value_input" id="value_input" class="form-control"/> 
       <a id='submit-btn' t-attf-href="#" class="btn btn-primary btn-lg mt8">Submit</a> 
       <script> 
        var value_input = document.getElementById('value_input'); 
        var submit_button = document.getElementById('submit-btn'); 

        value_input.addEventListener('input', function(){ 
         submit_button.href = "/cart/?input_value=" + value_input.value; 
        }); 
       </script> 
     </div> 
    </xpath> 
</template> 

ここにコントローラの例を示します。

@http.route('/cart/', auth='public', website=True) 
def get_cart_vals(self, **kw): 
    # YOUR VARIABLE value_input SHOULD BE AVAILABLE IN THE QUERY STRING 
    query_string = request.httprequest.query_string 
    # PROCESS DATA AND LOAD THE RESPONSE TO THE USER OR REDIRECT HERE 
+0

ありがとうございました!正確に私が必要としたもの。無効になっているボタンを除いて、この行(submit_button.disabled = false;)が間違っていますか? – Jesse

+0

これはあなたのためにうまくいきました。私は無効ボタンに関する部分を削除しました。 –

関連する問題