javascript - Ajax 调用成功但 $_POST['value'] 为空
问题描述
问题已解决
这些问题似乎与浏览器有关。尝试使用不同的系统,它工作正常。
我正在编写实时搜索以使用 ajax 和 php 从数据库中显示用户的详细信息。表单字段的输入正确地传递到 ajax 文件。我检查了 console.log() 并且打印正确。之后,Ajax 调用发生,没有任何错误。但是当试图回显 $_POST['search'] 时,它正在打印空白空间。
搜索表单.php
<input type="text" placeholder="Search" class="search"/>
<div class="search-result"></div>
搜索.js
$(function(){
$('.search').keyup(function(){
var search = $(this).val();
//console.log(search);
$.ajax({
url:'search.php',
data:{search:search,},
type:'POST',
success:function(data){
console.log(data);
$('.search-result').html(data);
},
error:function(){
console.log("error");
}
});
});
});
搜索.php
<?php
include('core/init.php');
echo $_POST['search'];
?>
已编辑
我发现了这个问题,但不知道原因,也没有找到解决方案。基本上include('core/init.php');
是不包括在内。我试过var_dump(include('core/init.php'));
了,它返回 bool(false)。路径是正确的。使用ajax调用文件时需要做些什么includes
吗?
解决方案
首先,你把这个改成
data:{search:search,}
这个data:{search:search}
第二,试着把
echo
你的search.php
变成这个echo json_encode($_POST['search']);
对于更复杂的检查,您可以
inspect element
(在浏览器中按 F12),转到network
选项卡并在新选项卡中打开您的search.php
文件。是显示你的期望值吗?如果
search.php
显示预期值,请尝试在 windows (ctrl + F5) 中硬刷新您的浏览器以尝试更新您的 js
推荐阅读
- c# - 根据特定的开始和结束标记更改 TextBox 前景色
- google-apps-script - Google App Scipt Utilites.unzip 不适用于来自外部脚本的 zip 文件
- node.js - 查询结果达到 500+ 后,带有填充的 Mongoose 查找查询在 Azure MongoDB 上返回错误
- amazon-web-services - AWS IoT - 设备证书问题
- jsf - 添加 Primefaces 扩展的 CKEditor 时出错
- google-cloud-platform - 从 gcloud 命令行列出市场中的 gcp 映像
- c# - c#/WinForms - 从资源中获取文件并将其放在 C: 驱动器上的目录中
- c# - RequestURI 在 API 链接 asp.net 中去除“点”
- scikit-learn - 导入 eli5、Python 3.7、sklearn 版本 0.19.2 时出错
- c++ - Matlab与QT图形集成