【问题标题】:How to get php page to receive ajax post from html page如何让 php 页面从 html 页面接收 ajax 帖子
【发布时间】:2019-12-27 22:48:31
【问题描述】:

我有一个非常简单的表单,它有一个名字的输入字段。我捕获表单数据并使用标准 jQuery 发布方法通过 ajax 将其传输到 PHP 页面。但是,我根本无法从 PHP 页面获得任何响应,即在服务器端捕获了任何数据。我不确定我做错了什么或缺少什么。

这是我的代码。

表格:

<form action="process.php" method="POST">
<div class="form-group">
<div class="form-row">
<div class="col-md-6 mb-3">
<label for="firstName">First name</label>
<input type="text" class="form-control" name="firstName" id="firstName" placeholder="First name">
<div class="d-none" id="firstName_feedback">
<p>Please enter a first name.</p>
</div>
</div>
</div>
</div>
<button class="btn btn-primary" type="submit">Submit form</button>
</form>

这是我的 Jquery Ajax 调用:

<script>
$(document).ready(function() {
$('form').submit(function(event) {
var formData = $("form").serialize();
console.log(formData); 
$.ajax({
type: 'POST', 
url: 'form.php', 
data: formData, 
dataType: 'json', 
encode: true    
   })
.done(function(data) {
 console.log(data); 
 });
 event.preventDefault();
 });

 });


</script>

这是我的 PHP 页面:

if(isset($_POST['formData']))    
$ajaxData = ($_POST['formData']); 
echo $ajaxData;
{
}

【问题讨论】:

  • formData 是您将输入序列化到的变量的名称。它不是查询参数名称。查询参数名称将是您表单中的输入名称。在此示例中,$_POST['firstName'] 将出现

标签: javascript php jquery html ajax


【解决方案1】:

在您的 Ajax 函数中,您将 formData 的内容传递给服务器,虽然不是作为 formData 而是作为它们的原始输入名称。

在这种情况下,您有:

<input type="text" class="form-control" name="firstName" id="firstName" placeholder="First name">

输入的名字是名字,所以你需要调用$_POST['firstName']而不是$_POST['formData']

if (isset($_POST['firstName'])) {
    $ajaxData = $_POST['firstName'];
    echo $ajaxData;
}

这同样适用于表单中的任何其他字段,例如,具有名称为 lastName 的另一个输入意味着您必须调用 $_POST['lastName'] 才能访问它。

我在上面提供的 PHP 代码中还有一些放错位置的括号和括号。

【讨论】:

  • api.jquery.com/jQuery.postdata 是$.ajax 指定帖子数据的字段名称,而不是任何特定帖子数据的名称。表单参数将具有表单中输入元素的name,所以$_POST['firstName']
  • 我的错,我混淆了一些概念,你说得对。相应地编辑了帖子。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-13
  • 2020-05-31
  • 2017-05-27
  • 2016-11-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多