php - 使用 Ajax 触发 php 块
问题描述
我正在将一些表单数据解析为 Ajax,并希望触发一段 php 代码。
因此,在我目前在提交时提醒电子邮件地址的代码中,我想将其解析到newsletter_signup
函数中并在最底部运行 php 代码块,表单中的电子邮件地址进入 php.ini 文件。
我怎样才能做到这一点?
<form action="/event" method="POST" id="signupForm">
<input type="hidden" name="event" value="mc_newsletter_add">
<input type="hidden" name="data[source]" value="newsletter">
<input checked=checked type="checkbox" name="data[newsletter_onetime]" id="newsletter_onetime" class="newsletter-optins">
<input checked=checked type="checkbox" name="data[promos]" id="promos" class="newsletter-optins">
<input class="modal-newsletter-input" id="EmailAddress" name="data[customers_email_address]" placeholder="Enter your email here" required="required" type="email" value="<?php if(isset($_GET['email'])){echo $_GET['email'];}?>" aria-required="true">
<input class="modal-newsletter-signup" id="newslettersignup" name="Submit" type="submit" value="Yes, sign me up" />
</form>
<script>
$("#signupForm").submit(function(e) {
e.preventDefault();
var form = $(this);
var email = $("#EmailAddress").val();
$.ajax({
type: "POST",
url: form.attr('action'),
data: form.serialize(),
success: function(data)
{
console.log(data); //data contain response from your php script
register_signup();
newsletter_signup(email);
form.replaceWith("<br /><p>Thanks for signing up!</p>");
}
});
});
function register_signup(){
ga( 'send', 'event', 'Newsletter Sign Up', 'submit' );
}
function newsletter_signup(email){
$('#signupForm').load(
"newsletter-call.php",
{
'key1': email,
}
);
}
</script>
然后这会调用一个名为 newsletter-call.php 的 php,其中包含以下内容:
<script type="text/javascript">
alert("Hit the page");
</script>
<?php $sib_tracking = new SIB_Tracking();
$email = $_POST['key1'];
$event = "marketing";
$result = $sib_tracking->track_event($email, $event); ?>
解决方案
您可以简单地传递电子邮件地址。
newsletter_signup(email);
然后继续使用它作为参数。
function newsletter_signup(email) {
console.log(email);
}
至于在 PHP 中使用它,您可以使用 ajax 请求执行 php 操作,然后再将其输出到 JavaScript 函数。
推荐阅读
- bash - 在单独的行中定义时,Docker build-arg 不会自动获取 env 变量
- oracle - Oracle 12c 全文索引维护
- jquery - 如何禁用仅向上拖动以关闭fancybox灯箱?
- sql - 是否可以复制 Azure DevOps 构建并在本地运行它?
- c# - 如何在 Blazor 服务器中设置同意 cookie
- c# - 如何解决 bot 框架模拟器中的 404 post 错误,因为在 godadday 上使用托管 url?
- kotlin - 从协程中使用 runBlocking 会发生一些不好的事情吗?
- javascript - 如何将构建反应应用程序(js,css)添加到 laravel 后端服务器
- c++ - 数组超出范围 MQL5 循环
- python - beautifulsoup div extract