首页 > 解决方案 > 返回 Json_Encode 内容并以 HTML 显示

问题描述

我有一个输入,我希望用户输入他们的电子邮件地址,以便他们可以订阅时事通讯。我有执行某些检查的简单 php 代码,但我似乎找不到将文本显示到 HTML div 中的方法(错误或成功案例)。

这是我的 php 代码:

// code above is left out for simplicity

$success = @mail($mailTo, $subject, $msg, $headers);

    if ($success) {
        // I think i got it wrong here ...?
        $json_arr = array( "type" => "success", "msg" => $successMsg );
        echo json_encode( $json_arr );
    } else {
        $json_arr = array( "type" => "error", "msg" => $errorMsg );
        echo json_encode( $json_arr );
    }

这是 HTML 代码:

<div class="newsletter_form2">
<form method="post" name="news" action="newsletter.php">
    <div class="form-group">
        <div class="form-input">
            <input type="text" class="form-control" name="emailNewsletter" id="emailNewsletter" required="required" placeholder="Vul je e-mail adres in">
            <button type="submit" title="Schrijf mij in" class="btn btn-default btn-radius" name="submit" value="Submit">schrijf mij in</button>

            <div class="col-lg-12 text-center">
                <div id="alert-msg" class="alert-msg text-center"></div>
            </div>
        </div>
    </div>
</form>
</div>

我在这里缺少什么,有什么建议/方向吗?谢谢!

标签: phphtmlarraysjsonpost

解决方案


查看 JQuery 的getJSONAjax。请记住,您应该在 PHP 中使用header("Content-Type: application/json);. 使用 JQuery 的serialize()您可以将表单数据推送到 PHP 脚本。

$.ajax({
  type: "POST",
  url: "yourUrl",
  data: $("#form").serialize(),
  success: function (result) {
     // handling your result
     $("#alert-msg").html(result.msg);
  }
})

推荐阅读