php - 单个表单中的多个 POST 请求
问题描述
我有以下表格,其中仅包含一个电子邮件输入。
<form action="model.php" name="f1mail" method="POST" id="form45">
<input id="field0" type="email" name="email" class="field" required>
<input type="submit" class="start submit-button" value="Next">
</form>
提交表单后,我需要对这个客户信息做两件事。首先,我需要将此电子邮件发送到托管在另一台服务器中的数据库。其次,我需要在同一台服务器中调用一个 php 文件。
为此,我在表单的操作中调用 php 文件,然后执行此 AJAX 代码来向外部 url 发出请求:
$(document).ready(function() {
// Process the form
$('#form45').submit(function(event) {
// AJAX request
$.ajax({
url : 'https://my_url?&callback=',
data : 'email=' + email,
type : 'POST',
dataType : 'jsonp',
success : function(resp) {
alert(resp);
},
error : function(e) {
alert('Error: ' + e);
}
});
});
});
但这不起作用。任何人都知道两个如何同时将表单的相同信息提交到两个不同的 URL?不知道有没有其他方式,不一定是AJAX,也许用Python和Flask或者其他语言更容易实现。
谢谢!!!
解决方案
我终于解决了。对于有同样问题的任何人,这是我所做的解决方案。
正如一些人在评论中告诉我的那样,我使用 PHP 的 cURL 库来发出 POST 请求,然后做我需要的所有其他事情。让我解释一下……我
没有调用两个不同的 URL,而是在我自己的服务器中调用了一个,您可以在表单的操作中看到 model.php 页面。此页面与电子邮件信息有关。但是在所有这些事情开始之前,我把这段代码放在了对外部 URL 的 POST 请求中,然后代码跟在前面的需要后面。
<?php
// Get cURL resource
$curl = curl_init();
// Set up the request for external_url
curl_setopt_array($curl, array(
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_URL => 'https://external_url',
CURLOPT_USERAGENT => 'sample',
CURLOPT_POST => 1,
CURLOPT_POSTFIELDS => array(
'email' => $email,
// More vars if needed
...
)
));
// Send the request and check errors
$resp = curl_exec($curl);
if(!$resp){
die('Curl error: ' . curl_error($curl));
}
// Clear up resources
curl_close($curl);
?>
推荐阅读
- javascript - 在 Puppeteer 中使用函数参数作为 CSS 选择器
- swift - 如何放大到在 swift ui 中显示的场景的节点
- python - 无法冻结 Pycharm venv
- python - 如何用散点图在左右两边制作两个x轴?
- php - 模型在字段上返回“_required”错误,它不是空的 Cake php 3.8
- delphi - 允许 delphi 在变量中使用 0x56。除了将十六进制转换为其他东西之外,我似乎在互联网上找不到任何东西
- android - 当带有可选文本的 TextView 成为焦点时,停止 ScrollView 滚动
- apache-kafka - Kafka Producer - 在集群中重新启动代理后无法下载/刷新元数据
- python - 使dijkstra算法从python中的.txt文件中获取输入
- lua - 尝试同时运行两个循环 Minecraft ComputerCrafft