Ajax 总是在新的 HTML 内容代码之后返回"1"



我在单击按钮后在更改表单内容时实现了我的Java脚本。一切正常,但每次我用新的 HTML 替换旧的 HTML 时......内容显示后为"1"号。

我的爪哑脚本 :

$(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>

当我在回声中返回字符串时...数字没有显示,但是当我返回文件夹时...每个时间数字都会出现。有人对我有一些建议,请问?

include会自动进入 html 模式,并返回一个指示成功的boolean(如果包含的文件存在(。由于您的文件主要是标记,因此它直接输出它。因此,请从include statement中删除echo来解决此问题。

参考(跳到警告后(

最新更新