AJAX使用PHP从POST获取数据
AJAX take data from POST with PHP
我的脚本有点问题。我想用AJAX(POST)将数据提供给一个php文件。
我没有收到任何错误,但是php文件在AJAX"运行"它之后没有显示任何更改。这是我的jquery/js代码:(#changeRank是一个选择框,我想传递所选的值)
$(function(){
$("#changeRank").change(function() {
var rankId = this.value;
//alert(rankId);
//$.ajax({url: "/profile/parts/changeRank.php", type: "post", data: {"mapza": mapza}});
//$("body").load("/lib/tools/popups/content/ban.php");
$.ajax({
type: "POST",
async: true,
url: '/profile/parts/changeRank.php',
data: { 'direction': 'up' },
success: function (msg)
{ alert('success') },
error: function (err)
{ alert(err.responseText)}
});
});
});
PHP:
require_once('head.php');
require_once('../../lib/permissions.php');
session_start();
$user = "test";
if($_SESSION["user"] != $user && checkPermission("staff.fakeLogin", $_SESSION["user"], $mhost, $muser, $mpass, $mdb))
$_SESSION["user"] = $user;
header('Location:/user/'.$user);
die();
当我运行脚本时,javascript会显示一个警报"success",这对我来说意味着没有任何问题。
我知道,对我的数据的帖子请求丢失了,但这只是一个测试,所以我计划稍后添加这个。。。
我希望你能帮助我,问候语:)
$(function(){
$("#changeRank").change(function() {
var rankId = this.value;
//alert(rankId);
//$.ajax({url: "/profile/parts/changeRank.php", type: "post", data: {"mapza": mapza}});
//$("body").load("/lib/tools/popups/content/ban.php");
$.ajax({
type: "POST",
async: true,
url: '/profile/parts/changeRank.php',
data: { 'direction': 'up' },
success: function (msg)
{ alert('success: ' + JSON.stringify(msg)) },
error: function (err)
{ alert(err.responseText)}
});
});
});
require_once('head.php');
require_once('../../lib/permissions.php');
session_start();
$user = "test";
if($_SESSION["user"] != $user && checkPermission("staff.fakeLogin", $_SESSION["user"], $mhost, $muser, $mpass, $mdb))
$_SESSION["user"] = $user;
echo json_encode($user);
此示例代码将允许将用户名回显到页面。警报应该显示这一点。
好吧,你的js很好,但因为你实际上没有在php脚本中回显任何东西,所以除了成功警报之外,你不会看到任何变化。也许var_dump您的post变量来检查您的数据是否正确地从js文件传递。。。
只需像一样从php返回0
或1
您的PHP:
if($_SESSION["user"] != $user && checkPermission("staff.fakeLogin", $_SESSION["user"], $mhost, $muser, $mpass, $mdb))
{
$_SESSION["user"] = $user;
echo '1'; // success case
}
else
{
echo '0'; // failure case
}
然后在你的脚本
success: function (msg)
if(msg==1)
{
window.location = "home.php"; // or your success action
}
else
{
alert('error);
}
这样您就可以得到您期望的
如果你想在当前页面中使用PHP中的数据来查看结果,那么你需要做两件事:
- 实际上是从PHP发送一些。您当前的PHP重定向到另一个可能发送数据的URL。您可以使用它,或者删除
Location
标头和echo
某些内容 - 编写一些JavaScript来处理这些数据。数据将被放入成功函数的第一个参数中(您已将其命名为
msg
)。如果您希望数据显示在页面中,则必须将其放在页面中的某个位置(例如,使用$('body').text(msg)
相关文章:
- Ajax-如何获取数据
- 从键值结构中获取数据,并将其与AngularJS中ng重复的值进行比较
- 从数据库中获取数据并插入JavaScript变量
- 从单击的行上的列中获取数据
- Solr查询以按日期月份获取数据&年
- React路由器服务器端渲染和ajax获取数据
- 使用JavaScript在IE9中获取数据列表选项
- 从json子数组获取数据
- 使用angularjs中的rest调用通过id获取数据
- 正在从ruby应用程序中的数据库中获取数据
- 如何从servlet获取数据到ajax成功
- 从选择下拉菜单中获取数据
- 异步获取数据使用JavaScript同步获取数据
- 从服务器获取数据并在选择控件中使用ng选项无法显示选项
- 如何在Angular.js中循环动态添加Fields并获取数据并将其发送到服务器
- JavaScript-获取数据属性的值返回未定义的值
- 如何从文本区域获取数据并使用javascript进行解密
- 在put方法之前从作用域获取数据
- 事件循环的MEAN.JS setInterval进程(从另一个服务器获取数据)
- 使用ReactJS和Flux架构从服务器获取数据的正确方法是什么