2016-08-08 18 views
0

私はPrestashop 1.6で作業しています。私はPHPにはあまり入っていませんが、ウェブサイトの外観を1つ変更したかったのです。デフォルトでは、家庭用と携帯用の2つの電話入力があります。 それはそのようになっています。私は1つの満たされたフィールドが十分であることを考えたので、私は、最初のものは見えない作ったPHP電話機の検証が機能しない

<div style="display: none" class="form-group is_customer_param"> 
        <label for="phone">{l s='Home phone'}{if isset($one_phone_at_least) && $one_phone_at_least} <sup>**</sup>{/if}</label> 
        <input type="text" class="text form-control validate" name="phone" id="phone" data-validate="isPhoneNumber" value="{if isset($guestInformations) && isset($guestInformations.phone) && $guestInformations.phone}{$guestInformations.phone}{/if}" /> 
       </div> 
       <div class="{if isset($one_phone_at_least) && $one_phone_at_least}required {/if}form-group"> 
        <label for="phone_mobile">{l s='Mobile phone'}{if isset($one_phone_at_least) && $one_phone_at_least} <sup>*</sup>{/if}</label> 
        <input type="text" class="text form-control validate" name="phone_mobile" id="phone_mobile" data-validate="isPhoneNumber" value="{if isset($guestInformations) && isset($guestInformations.phone_mobile) && $guestInformations.phone_mobile}{$guestInformations.phone_mobile}{/if}" /> 
       </div> 
       {if isset($one_phone_at_least) && $one_phone_at_least} 
        {assign var="atLeastOneExists" value=true} 
        <p class="inline-infos required">* Podaj nr telefonu</p> 
       {/if} 

。それはそうです。しかし、私は携帯電話番号を入力せずにフォームを提出することができます。おそらくどこに問題があるのでしょうか?または、どうすればそれを動作させることができますか?

良い作品フィールドの例は、本当に必要と別のフィールドとペアになっていません:私はモバイルこの方法を検証しようとした

<div class="required form-group"> 
         <label for="lastname_invoice">{l s='Last name'} <sup>*</sup></label> 
         <input type="text" class="form-control validate" id="lastname_invoice" name="lastname_invoice" data-validate="isName" value="{if isset($guestInformations) && isset($guestInformations.lastname_invoice) && $guestInformations.lastname_invoice}{$guestInformations.lastname_invoice}{/if}" /> 
        </div> 

<div class="required phone_mobile form-group"> 
        <label for="phone_mobile">{l s='Mobile phone'} <sup>*</sup></label> 
        <input type="text" class="text form-control validate" name="phone_mobile" id="phone_mobile" data-validate="isPhoneNumber" value="{if isset($guestInformations) && isset($guestInformations.phone_mobile) && $guestInformations.phone_mobile}{$guestInformations.phone_mobile}{/if}" /> 
       </div> 

成功せず。..

+0

は標準の連絡フォームですか? –

答えて

2

$one_phone_at_leastの変数がtrueに設定されていないようです。バックオフィスからにアクセスしてください。>お客様は、「電話番号は必須です」がオンになっていることを確認してください。それはそれを修正する必要があります。

ちなみにrequiredクラスは、form-groupコンテナではなく、inputで使用する必要があります。その変更を行った場合、ユーザーはフォームを送信できない可能性がありますが、電話番号なしでデータを送信しようとすると、サーバーはそのフォームを許可します。私の最初のパラグラフの手順に従って、サーバーは電話番号が設定されていることも要求します。

+0

はい!それでおしまい。ありがとうございました。なぜこの "必須"がdivで使われているのか分かりません。たぶんどこかでCSSセレクターとして使われているかもしれません。とにかくありがとうございます:) – RIPI

0

オープンコントローラ/フロント/ ContactController.php 関数 "postProcess()"

あなたはそのメッセージを作るために、電話番号を強制的に行うために

を解放するために必要なフィールドを入力することができます10

は、電話番号がリストに追加する義務作るために

を変更しますELSEIFです:

} elseif (!(Tools::getValue('phone_mobile')||Tools::getValue('phone'))) { 
      $this->errors[] = Tools::displayError('It is mandatory to enter a pleasant phone number.'); 
} 
関連する問題