$('#saveNewData').click(function () {
//保存数据的按钮被点击的时候,获得当前数据
var type = $('select[name="type"] option:selected').val();
var title = $('input[name="title"]').val();
var imgSrc = $('input[name="imgSrc"]').val();
var author = $('input[name="author"]').val();
var createdAt = $('input[name="createdAt"]').val();
var content = $('textarea[name="content"]').val();
//封装数据
var data = {
type:type,
title:title,
imgSrc:imgSrc,
author:author,
createdAt:createdAt,
content:content
};
//ajax提交数据
$.ajax({
type: "POST",
url:'insert.php',
data:data,
datatype:'json',
error: function(request) {
alert("保存失败");
},
success: function(msg) {
alert("保存成功");
alert(data);
}
});
})
确定能够获得到表单元素的数据,html的地址栏提交的时候能显示所有提交数据
在insert.php中
$type = $_POST['type'];
$title = $_POST['title'];
$imgSrc = $_POST['imgSrc'];
$author = $_POST['author'];
$createdAt = $_POST['createdAt'];
$content = $_POST['content'];
无法获得传过来的数据,提示
Notice: Undefined index: type in D:xampphtdocs8-1baiduNewsinsert.php on line 3
Notice: Undefined index: title in D:xampphtdocs8-1baiduNewsinsert.php on line 4
Notice: Undefined index: imgSrc in D:xampphtdocs8-1baiduNewsinsert.php on line 5
Notice: Undefined index: author in D:xampphtdocs8-1baiduNewsinsert.php on line 6
Notice: Undefined index: createdAt in D:xampphtdocs8-1baiduNewsinsert.php on line 7
Notice: Undefined index: content in D:xampphtdocs8-1baiduNewsinsert.php on line 8
第一次用php,以前写js和node数据交互的时候用的那样的数据传递形式,但是php不能获得,哪位大神给我看看代码,万分感激
伊谢尔伦2017-04-11 10:24:35
我简单实验一下,
你的
//封装数据
var data = {
type:type,
title:title,
imgSrc:imgSrc,
author:author,
createdAt:createdAt,
content:content
};
这段写的问题吧,不加带引号?type:type 前面的type是字符串后面的type是变量,你感受下....
我的代码:
1.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>
</title>
<script src="http://lib.sinaapp.com/js/jquery/3.1.0/jquery-3.1.0.min.js"></script>
</head>
<body>
<input id='qq' type="text" name='qq123' value='xiaole' >
<input id='qq123' type="submit">
<script>
$('#qq123').click(function () {
var data = $('#qq').val();
// console.log(data);
var data={'data':data};
$.ajax({
type: "POST",
url:'2.php',
data:data,
datatype:'json',
error: function(request) {
alert("保存失败");
},
success: function(msg) {
console.log(msg);
}
});
});
</script>
</body>
</html>
2.php
<?php
$a = $_POST;
print_r($a);
echo json_encode($a);
?>
高洛峰2017-04-11 10:24:35
因为你封装的是JS对象而不是json,正规的json, 键都是都是带引号的,可以使用 JSON.stringify把对象转成字符串后再提交,建议你还是去看看json的规范。