2017-08-25 4 views
0

私は、フロントコントローラ付きのモジュールを構築するためにプレstashop1.7.2.1を使用しています。prestashopの1.7のスマートURLタグをfromアクションのプロパティで使用する

私がしようとしているのは、スマートな{url}タグをフォームのアクションプロパティに追加することです。問題は、フォームを送信すると、fromのactionプロパティで提供されるgetパラメータがすべて消去されることです。これはhtmlの通常の動作です。一般的に

<form id="car-type-form" action="{url entity='module' name='tuxinmodcartype' controller='cartypeproducts'}" method="get"> 
    <div id="company-name-input-form-group" class="form-group row"> 
     <label for="company-name-input" class="col-sm-2 col-form-label">Company</label> 
     <div class="col-sm-10"> 
      <input type="text" class="form-control" id="company-name-input" name="company_name" placeholder="Company" aria-label="Company" required="required"/> 
     </div> 
    </div> 
... 
</form> 

私は変数にそのSmartyの{url}タグを貼り付けることができます。

この

は私のコードです。私が作成した変数にフォームフィールドの値を動的に追加し、フォームを送信する代わりにリダイレクトするために使用します。

これが最善の解決策であるかどうかわかりません。

多分私が逃した何かがあります。

は今、私がやったことのために

答えて

0

が作成したURL文字列に基づいて、フォームに非表示の入力要素を追加することですありがとうございました。

私は私のテンプレートファイルの最初の行にこれを持っている:私は、次のコードを追加

<script type="text/javascript"> 
    var carTypeProductsUrl='{url entity='module' name='tuxinmodcartype' controller='cartypeproducts'}'; 
</script> 

と提出機能に:

... 
if (isError) { 
      event.preventDefault(); 
     } else { 
      $('.hidden-form-params').remove(); 
      var params = carTypeProductsUrl.substr(carTypeProductsUrl.indexOf('?')+1).split('&'); 
      params.forEach((paramStr)=>{ 
       var paramsArray = paramStr.split('='); 
       const paramKey = paramsArray[0]; 
       const paramvalue = paramsArray[1]; 
       $('#car-type-form').append(`<input type="hidden" name="${paramKey}" value="${paramvalue}" class="hidden-form-params" />`); 
      }); 
     } 

この方法は、ビットを感じている。..ハック? ! :)私はちょうどこれが行く方法であることを確認したい

関連する問題