$.ajax({
method: "post"
, url: "save.php"
, data: "id=453&action=test"
, beforeSend: function(){
}
, complete: function(){
}
, success: function(html){
$("#mydiv").append(html);
}
});
我已将方法类型设置为 post 但在 Save.php 中我只是在 $_GET
或 $_REQUEST
中获取值,而不是在 $_POST
。
我的表格看起来像:
<form method="post" id="myform" action="save.php">
它不起作用,在这里和谷歌上四处查看,尝试添加 enctype
<form method="post" id="myform" action="save.php" enctype="application/x-www-form-urlencoded">
但是 $_POST
还是空的?
如何让它发挥作用?
最佳答案
你需要使用 type: "POST"
而不是 method: "post"
因此这应该可以在不对您的表单 HTML 进行任何更改的情况下工作:
$.ajax({
type: "POST"
, url: "save.php"
, data: "id=453&action=test"
, beforeSend: function(){
}
, complete: function(){
}
, success: function(html){
$("#mydiv").append(html);
}
});
不知道为什么它不起作用,但这对我有用:
保存.php
<?php
print_r($_POST);
file.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>Example</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
$('input').click(function() {
$.ajax({
type: "POST"
, url: "save.php"
, data: "id=453&action=test"
, beforeSend: function(){
}
, complete: function(){
}
, success: function(html){
alert(html);
}
});
});
});
</script>
</head>
<body>
<div id="main"><input type="button" value="Click me"></div>
</body>
</html>
你的错误一定在别的地方。
关于php - Jquery .ajax 方法 ="post"但 $_POST 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1650516/