Ajax всегда возвращает «1» после нового кода содержимого HTML - PullRequest
0 голосов
/ 05 октября 2018

Я реализовал свой Java Script для изменения содержимого формы после нажатия на кнопку.Все работает, но каждый раз, когда я заменяю старый HTML новым ... после того, как в контенте отображается число "1".

Мой Javascript:

$(document).on('click','#customButton', function (evt) {

    evt.preventDefault();

    var requestArray = $(".form_step").val();

    $.ajax({
        url: ajaxurl,
        type: "POST",
        data: {"action": "testNewsletter", "form_step":requestArray},
        dataType: "",
        success:function(data) {

            $(".current").empty();
            $(".current").html(data);
        }
    });
});

Пользовательская функция в functions.php:

function testNewsletter() {

    $FormId ='';

    If(isset($_POST['form_step'])){
        $FormId = $_POST['form_step'];
    }

    if($FormId == 1){
        echo include ('pages/forms/form-two.php');
        //echo 'AHOJ';
    }

    else if($FormId == 2){
        echo include ('pages/forms/form-three.php'); 
    }

    else {
        echo include ('pages/forms/form-four.php');
    }

    wp_die();

}

HTML Я заменил новым HTML:

<form  method="post" class="newsletter">
    <div class="current">
        <div class="fce-newsletter-form">
            <div class="row justify-content-center">
                <div class="col-md-7 text-center">
                    <h2 class="mb-half"><?php the_sub_field('newsletter_title')?></h2>
                    <p class="mb-2 lead">Mit unserem Newsletter erhalten Sie monatlich Informationen rund um das Urlaubsland Österreich und eine Auswahl exklusiver Angebote und Gutscheine!</p>
                </div>
            </div>

            <div class="row justify-content-center">
                <div class="col-md-6">

                        <div class="testFormChange">
                            <div class="form-row">
                                <div class="col-8">
                                    <input type="email" class="form-control" id="custom-input-newsletter" placeholder="Ihre E-Mail Adresse *" required="required">
                                </div>
                                <div class="col-4">
                                    <input type="button" class="fce-newsletter-form-button btn btn-block btn-primary" id="customButton" value="Weiter">
                                    <input type="hidden" value="step1" name="step">
                                </div>
                            </div>
                        </div>

                    <p class="fce-newsletter-form-note">mit * gekennzeichnete Felder bitte ausfüllen.</p>
                    <p class="fce-newsletter-form-error-message"></p>
                </div>
            </div>
            <input type="hidden" name="form_step" class="form_step" value="1">
        </div>
    </div>
</form>

Каждые новые данные HTML имеют содержание, аналогичное первому HTML, например:

<div class="fce-newsletter-form">
    <div class="row justify-content-center">
        <div class="col-md-7 text-center">
            <h2 class="mb-half"><?php the_sub_field('form_four_title')?></h2>
            <p class="mb-2 lead">Vielen Dank für Ihre Anmedung zu unserem Newsletter.
                Sie erhalten in Kürze eine E-Mail mit einem Bestätigungslink.</p>
        </div>
    </div>

    <div class="row d-flex justify-content-center">
                        <a href="<?php the_permalink()?>" class="link-read-more"> <?php
                            include get_stylesheet_directory() . '/img/svg/icon_arrow.svg';
                            ?>
                            Zum Newsletterarchiv
                        </a>
    </div>
</div>

Когда явозвращаемая строка в эхо ... номер не отображается, но когда я возвращаю папку ... каждый раз будет появляться номер.У кого-нибудь есть совет для меня, пожалуйста?

1 Ответ

0 голосов
/ 05 октября 2018

include автоматически переходит в режим html и возвращает boolean, указывающий на успех, если включенный файл существует.Поскольку ваш файл в основном разметки, он выводит его напрямую.Поэтому удалите echo из include statement, чтобы исправить это.

Ссылка (перейдите к разделу после предупреждения)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...