Problems, need help? Have a tip or advice? Post it here.
5 posts Page 1 of 1
Hi!

I have a problem to solve, maybe you can show me the way.

I have a form with 2 phone fields and 2 email fields. I need to add custom validation on a form with a message.

The validation needs to check on the submitted form if the email fields have different values ​​and the phone fields have different values, if yes then submit the form, if the values ​​are the same, the user needs to see a message that the values ​​must be different.
I solve this task. Custom function.
Great :) Care to share your code with us?
addon/kfunctions.php

Code: Select all
function validation_phone( $field, $args ){
    $recommending = '';
    $recommended = '';
    foreach( $field->siblings as $f ){
        if ($f->name == 'polecajacy_tel') {
            $recommending = trim($f->get_data());
        }
        if ($f->name == 'polecany_tel') {
            $recommended = trim($f->get_data());
        }
    }
    if ($recommending === $recommended) {
        return KFuncs::raise_error( "Numer telefonu polecającego oraz polecanego nie może być taki sam." );
    }
}

function validation_email( $field, $args ){
    $recommending = '';
    $recommended = '';
    foreach( $field->siblings as $f ){
        if ($f->name == 'polecajacy_email') {
            $recommending = trim($f->get_data());
        }
        if ($f->name == 'polecany_email') {
            $recommended = trim($f->get_data());
        }
    }
    if ($recommending === $recommended) {
        return KFuncs::raise_error( "Adres e-mail polecającego oraz polecanego nie może być taki sam." );
    }
}



Code: Select all
   <div class="input-wrapper <cms:if k_error_polecajacy_email> input-error </cms:if>">
                    <cms:input validator='email | validation_email' type="text" name="polecajacy_email" id="polecajacy_email" placeholder="adres e-mail polecającego" required="1" />
                    <!-- <input type="email" name="polecajacy_email" id="polecajacy_email" placeholder="adres e-mail polecającego" required="1"> -->
                    <cms:if k_error_polecajacy_email = "Adres e-mail polecającego oraz polecanego nie może być taki sam.">
                      <p id="polecajacy_email_error" class="form-error" style="display:block"><cms:show k_error_polecajacy_email/></p>
                    <cms:else />
                      <cms:if k_error_polecajacy_email>
                          <p id="polecajacy_email_error" class="form-error" style="display:block">Popraw pole</p>
                      </cms:if>
                    </cms:if>
                </div>
                <div class="input-wrapper <cms:if k_error_polecajacy_tel> input-error </cms:if>">
                    <cms:input validator='validation_phone' type="text" name="polecajacy_tel" id="polecajacy_tel" placeholder="numer telefonu polecającego" required="1"/>
                    <cms:if k_error_polecajacy_tel = "Numer telefonu polecającego oraz polecanego nie może być taki sam.">
                      <p id="polecajacy_tel_error" class="form-error" style="display:block"><cms:show k_error_polecajacy_tel/></p>
                    <cms:else />
                      <cms:if k_error_polecajacy_tel>
                          <p id="polecajacy_tel_error" class="form-error" style="display:block">Popraw pole</p>
                      </cms:if>
                    </cms:if>
</div>

<div class="input-wrapper <cms:if k_error_polecany_email> input-error </cms:if>">
                    <cms:input validator='email | validation_email' type="text" name="polecany_email" id="polecany_email" placeholder="adres e-mail polecanego" required="1" />
                    <!-- <input type="email" name="polecany_email" id="polecany_email" placeholder="adres e-mail polecanego" required="1"> -->
                    <cms:if k_error_polecany_email = "Adres e-mail polecającego oraz polecanego nie może być taki sam.">
                      <p id="polecany_email_error" class="form-error" style="display:block"><cms:show k_error_polecany_email/></p>
                    <cms:else />
                      <cms:if k_error_polecany_email>
                          <p id="polecany_email_error" class="form-error" style="display:block">Popraw pole</p>
                      </cms:if>
                    </cms:if>
                </div>
                <div class="input-wrapper <cms:if k_error_polecany_tel> input-error </cms:if>">
                    <cms:input validator='validation_phone' type="text" name="polecany_tel" id="polecany_tel" placeholder="numer telefonu polecanego" required="1"/>
                    <cms:if k_error_polecany_tel = "Numer telefonu polecającego oraz polecanego nie może być taki sam.">
                        <p id="polecany_tel_error" class="form-error" style="display:block"><cms:show k_error_polecany_tel/></p>
                      <cms:else />
                      <cms:if k_error_polecany_tel>
                          <p id="polecany_tel_error" class="form-error" style="display:block">Popraw pole</p>
                      </cms:if>
                    </cms:if>
</div>
Thanks. As you have shown, validators are regular PHP functions that return 'KFuncs::raise_error' to signify failure (and return nothing for success).
5 posts Page 1 of 1
cron