我有下面的html页面:
<!DOCTYPE html>
<html lang="en">
<head>
<title>HTML</title>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
$(document).ready(function() {
$("#b1").click(function(event) {
$.ajax({
type : "POST",
url : "index.php",
data : "valx=2",
contentType : "application/x-www-form-urlencoded",
dataType : "text",
complete : function() {
alert('post completed');
},
error : function() {
alert('error condition');
},
success : function(data) {
$('.result').html(data);
alert('data is returned');
},
statusCode : {
200 : function() {
alert("page was found");
}
}
});
event.preventDefault();
});
});
</script>
</head>
<body>
<div>
<button id="b1">
Click Me!
</button>
</div>
<div class="result"></div>
</body>
</html>
然后我有以下php页面:
<?php
$my_string = $_REQUEST["valx"];
$my_string = $my_string +9;
echo $my_string;
?>
一切都按原样完美运行,但我试图弄清楚如何将帖子数据更改为表格:
data: '{ valx:"2"}'
这就是它破裂的地方。我尝试了很多形式的数据:'{valx:“2”}'但仍然没有运气。好像php脚本没有正确获取数据。另请注意,使用此格式似乎也需要更改contentType : "application/x-www-form-urlencoded",
。
所以问题是如何传递data: '{ valx:"2"}'
形式的数据并获得11的响应?
谢谢, 吉姆
答案 0 :(得分:3)
data参数接受带有键/值的var=value&var1=value1
表单,或 JavaScript对象。你已经给了它,这是一个字符串......
data: '{ valx:"2"}`
...当你应该给它时,这是一个真正的JS对象:
data: { valx:"2"}
答案 1 :(得分:0)
使用对象而不是字符串。 jQuery会将对象解析为表单编码格式。还要完全删除contentType
选项,因为这不是要发送的数据类型,而是收到的数据,您将收到text / html
data : { valx:"2"},