<code>$('#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); } }); })</code>
确定能够获得到表单元素的数据,html的地址栏提交的时候能显示所有提交数据
在insert.php中
<code>$type = $_POST['type']; $title = $_POST['title']; $imgSrc = $_POST['imgSrc']; $author = $_POST['author']; $createdAt = $_POST['createdAt']; $content = $_POST['content'];</code>
无法获得传过来的数据,提示
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不能获得,哪位大神给我看看代码,万分感激
<code>$('#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); } }); })</code>
确定能够获得到表单元素的数据,html的地址栏提交的时候能显示所有提交数据
在insert.php中
<code>$type = $_POST['type']; $title = $_POST['title']; $imgSrc = $_POST['imgSrc']; $author = $_POST['author']; $createdAt = $_POST['createdAt']; $content = $_POST['content'];</code>
无法获得传过来的数据,提示
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不能获得,哪位大神给我看看代码,万分感激
因为你向后台发送的是一个对象data,所以我猜你可以从后台获得$_POST['data']。
我简单实验一下,
你的
<code> //封装数据 var data = { type:type, title:title, imgSrc:imgSrc, author:author, createdAt:createdAt, content:content };</code>
这段写的问题吧,不加带引号?type:type 前面的type是字符串后面的type是变量,你感受下....
我的代码:
1.html
<code> <meta charset="UTF-8"> <title> </title> <script src="http://lib.sinaapp.com/js/jquery/3.1.0/jquery-3.1.0.min.js"></script> <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> </code>
2.php
<code> <?php $a = $_POST; print_r($a); echo json_encode($a); ?></code>
就是你传递的数据出现错误了 data应该写成json的格式。楼上已经说得很清楚了。
因为你封装的是JS对象而不是json,正规的json, 键都是都是带引号的,可以使用 JSON.stringify把对象转成字符串后再提交,建议你还是去看看json的规范。