我有一个表单并希望它能够在用户提交表单时执行以下操作:
action
参数中的网址。)我已经阅读了以下内容并且很难理解它:
这就是我所拥有的,也是我所尝试过的:
<form id="contactUsForm" method="post" action="/email.php">
<input type="text" name="firstName" id="firstName">
<input type="text" name="lastName" id="lastName">
<input type="text" name="email" id="email">
<input type="text" name="phone" id="phone">
<textarea name="comments" id="comments"></textarea>
<input type="submit" id="sendBtn" value="Send">
</form>
所以我开始停止正常提交表单:
$("form").submit(function(e) {
e.preventDefault();
这很有效。
我现在想用ajax将2个字段(firstName
,lastName
发布到名为curl.php
的脚本中。我添加了这个:
var self = this,
firstName = $('#firstName').val(),
lastName = $('#lastName').val()
$.ajax({
type: "POST",
url: "/curl.php",
data: {firstName: firstName, lastName: lastName},
cache: false
}).done(function(result) {
console.log(result);
self.submit();
}).fail(function() {
alert('error');
});
我的curl.php
脚本包含以下内容 - 它只输出2个字段的POST数据:
echo 'FirstName: ' . $_POST['firstName'] . '<br>';
echo 'LastName: ' . $_POST['lastName'] . '<br>';
我原以为这会出现在我的控制台中,因为console.log(result)
应该从curl.php
输出回复?
在“网络”标签中,向curl.php
发出请求,但没有响应数据。然后表单按预期提交给email.php
。
我不清楚我在进行ajax调用方式是否存在问题,但我认为curl.php
实际上并不是&#34;整理&# 34;在email.php
执行之前?
请有人给我一些关于我出错的地方的指示。我花了很多时间阅读上述链接和Promises,但我似乎无法理解这一点!
我理解ajax是异步的。但我不知道如何指导它等待&#34;在执行curl.php
之前email.php
完成执行。