在js中的代码如下:
var url = "index.php";
var data="[{'doing':'createvote'},{'type':'type'},{'num':'num'},{'votetheme':'votetheme'},{'creater':'loginname'}]";
var jsondata=eval('('+data+')');
$.post(url, jsondata, function(res) {
});
那么在php中如何获取这个json?
比如这样获取,
$order=$_REQUEST[];//要求这个$order获取的是json所有数据比如经过解析以后,
$orderarray=json_decode($order);//$orderarray就是整个多维数组
那么这个$_REQUEST[];的参数应该怎么填
感觉楼主对json_decode这个函数有点理解错误,这个函数时将一个json格式的字符串转化成php数组用的,前提是其中的参数必须为字符串
那我们回头看下楼主的代码,经过eval以后jsondata变成了一个数组形变量,结构似乎有点奇怪,有5个元素的一个数组,但是每个元素又是一个json对象,而每个json对象又只有一个变量。换句话说如果想获取createvote这个值,那么就需要调用jsondata[0].doing
而且,post发送的数据要求是json对象,而楼主这个根本就是不是json...能否发送都是个问题...
楼上那个说$_POST获取数据的,我试了一下,似乎不行。$_POST['doing']压根就是个未定义的值
如果要json_decode那就没必要先eval一下,感觉会弄巧成拙
给楼主一个代码
js:
var data='{"doing":"createvote","type":"type","num":"num","votetheme":"votetheme","creater":"loginname"}';注意data变量,‘与“的位置,不要写反,反了的话json_decode是不能编译的
php:
<?php根据返回的格式很明显就是一个php的array格式
post的参数必须是name->value的格式,如果单纯post一个变量,那么就相当于只有value,没有name,所以我这里将post的传参值写为{data:data}第一个data是name,第二个data是之前定义的字符串
追问你这么一说我明白了,不只是json_decode没理解,更重要的是对json和字符串的区别没有分明白,我想问下如果json是{'m':{}},格式的,那就在PHP里面接收M就可以,那问题是在js里面怎么往m里面动态添加健值对?
追答首先说{m:{}}这个格式是可以的,可以将整个json对象,作为数据发送出去。到服务器可以直接转换成array数组。
例如调用createvote这个数据,那么就是$_POST['m']['doing']就是了
动态添加json对象
var data={"doing":"createvote","type":"type","num":"num","votetheme":"votetheme","creater":"loginname"};能不能用json_decode函数解析成一个数组么?然后从数组里面取
追答先取后循环,先把$_POST的整个二维数组赋值到某个变量,然后循环这个变量就可以取值了
追问对我就这个不会,怎么把整个二位数组赋值到一个变量?你写一下这句代码,假设js就按照我那样写,谢了
追答{"k1":{"name":"name1"},"k2":{"name":"name2"}}
比如你的json是这样的,然后
$k1 = $_POST['k1']
foreach($k1 as $k=>$v){
$name1 = $v['name'];
}
就可以了
谢谢你让我更好的理解了json的写法用法,谢谢
如何使用PHP接收JSON数据
在PHP中接收JSON数据,关键在于使用`php:\/\/input`和`file_get_contents()`函数。`php:\/\/input`是一个只读流,可读取请求正文中的原始数据,而`file_get_contents()`用于将文件读入字符串,这为我们提供了处理JSON数据的途径。一旦获取到请求正文,我们使用`file_get_contents('php:\/\/input')`将数...
php怎么接收json类型数据
给前端调用的接口输出Json数据,这个比较简单,只需要组织好数据,用json_encode($array) 转化一下,前端就得到json格式的数据。接收前端提交的json数据稍微复杂一点,原因是:PHP默认识别的数据类型是application\/x-www.form-urlencoded标准的数据类型。因此,对型如text\/xml 或者 soap 或者 application\/octe...
PHP如何接收JSON?
对于json,PHP有对应的方法进行操作。一般而言,json会以字符串形式传给PHP脚本,一般都是放在$_POST里面,<?php \/\/ 接收 $json_parameter = $_POST['json_str']; \/\/ 处理, 变成数组 $array = json_decode($json_parameter); \/\/ PHP 把数组数据变成json格式字符串,发给页面 ...
PHP怎么读取JS文件里的数据
按格式序列成字符串...然后放到hidden里提交给服务器 或者ajax~必须有办法序列成字符串... 如果用js框架的话..可以尝试某些框架序列成json的函数 然后在php上可以用json_decode解析数据
c#和php接收json数据方法
1、获取要接受的json对象。2、准备一个实体类接受json对象。3、第一步的json对象复制到剪切板。4、可以看出RootObject中的user_List[]数组包含User_List类使用使用代码接受对象代码。
thinkphp后台发送的json,前台的js里怎么接收
代码如下:$.each(rData.rows,function(){alert(this.PK_NoticeID);\/\/用this.你那些字段alert(this.cell[0])})后台返回的数据是{'id':1,'name':'st','grant':[{'tm_id':1,'tm_name':'zc'},{'tm_id':2,'tm_name':'ww'}]}前台获取vardata=eval("("+json+")...
php 接收 json 数据,并解释
加入对方是post过来的。name 为orderInfo;<?php orderInfo = isset($_post['orderInfo']) ? trim($_post['orderInfo']) : '';if(strlen($orderInfo) < 1) { die('wrong data');} \/\/希望你能写一个更严格的验证函数,去验证数据的合法性 orderInfoArray = json_decode($orderInfo, true);...
thinkphp后台发送的json,前台的js里怎么接收
我举个简单的$.post方法,这是用ajax提交数据,提交数据的形式是post。.post('index.php','',function(data){ alert(data);});其中index.php是你后台发送json数据的php文件,function里面的data参数则是php文件返回的json数据,一般是echo 出来的json数据,第二个参数是用来传递参数给index.php的 ...
PHP使用POST传递json数据的接收与处理问题
前端传给服务器的只是json 格式的字符串,使用json_decode,mixed json_decode ( string $json [, bool $assoc ] )var_dump(json_decode($json));var_dump(json_decode($json, true));如果不带参数,则返回为对象 带上true时,返回数组 foreach($ARR as $k=>$v){ echo 'key='.$k.';...
如何用php调用外部接口json数据
一般使用php发送请求,获取返回的数据,进行解析;<?php url="接口地址";\/\/发送请求获取返回值,file_get_contents只支持get请求,post使用curl json = file_get_contents($url);\/\/把json数据转化成数组 data = json_decode($json,true);\/\/打印看看 print_r($data);?> ...