senchatouch 与PHP后台数据交互

来源:互联网 发布:js返回顶部底部代码 编辑:程序博客网 时间:2024/05/18 09:19

ST 可以把数据包装成json格式发送到php端

[php] view plaincopy
  1. cartItemsStore = Ext.getStore('cartitemsconvert');  
  2.                 var allData = [];  
  3.                 cartItemsStore.each(function(records){  
  4.                     allData.push(records.getData());  
  5.                 });  
  6.                 var dataToBeSentToServer = Ext.JSON.encode(allData);  
  7.                 console.log(dataToBeSentToServer);  

然后用jsonp或是ajax将数据传输到PHP端

[php] view plaincopy
  1. Ext.data.JsonP.request({  
  2.                     url: 'http://londit-50c03e41547f8.com.1130.url-test.com/dingcan/php/save-orders.php',  
  3.                     callbackKey: 'callback',  
  4.                     params: {  
  5.                         sendData:dataToBeSentToServer  
  6.                     },  
  7.                     timeout:2000,  
  8.                     success: function(result, request) {  
  9.                         console.log('提交数据成功');  
  10.                     }  
  11.                 });  

然后PHP怎么获得这些json数据呢?红色部分是php的问题。如果不用stripslashes转换。stripslashes() 函数删除由 addslashes() 函数添加的反斜杠。否则数据打印出来是空,还有个解决办法就是:The fix was to turn off magic_quotes in php.ini. If you do this, you will no longer need the call to stripslashes(). 

[php] view plaincopy
  1. $sendData = $_REQUEST['sendData'];  
  2. <span style="color:#ff0000;">$jsondata = stripslashes($sendData);</span>  
  3. //$sendData = '[{"id":"1","food":"\u5f20\u96ea\u6885","age":"27","subject":"\u8ba1\u7b97\u673a\u79d1\u5b66\u4e0e\u6280\u672f"},{"id":"2","food":"\u5f20\u6c9b\u9716","age":"21","subject":"\u8f6f\u4ef6\u5de5\u7a0b"}]';  
  4. $arrayData = json_decode($jsondata);  
  5. foreach($arrayData as $obj){  
  6.     echo "id:".$obj->food."<br />";  
  7. }  

另外附上PHP两种解析json数据的方法:

在PHP代码中处理JSON 格式的字符串的两种方法:唯一不同已经highlight出来了

方法一:

[php] view plaincopy
  1. $json ='[{"id":"1","name":"\u5f20\u96ea\u6885","age":"27","subject":"\u8ba1\u7b97\u673a\u79d1\u5b66\u4e0e\u6280\u672f"},{"id":"2","name":"\u5f20\u6c9b\u9716","age":"21","subject":"\u8f6f\u4ef6\u5de5\u7a0b"}]';  
  2. <span style="color:#ff0000;">$students = json_decode($json);//得到的是 object</span>  
  3. foreach($students as $obj){  
  4. echo "姓名:".$obj->name."年龄:".$obj->age." 专业:".$obj->subject."<br/>";  
  5. }  


方法二:

[php] view plaincopy
  1. $json ='[{"id":"1","name":"\u5f20\u96ea\u6885","age":"27","subject":"\u8ba1\u7b97\u673a\u79d1\u5b66\u4e0e\u6280\u672f"},{"id":"2","name":"\u5f20\u6c9b\u9716","age":"21","subject":"\u8f6f\u4ef6\u5de5\u7a0b"}]';  
  2. <span style="color:#ff0000;">$students = json_decode($json, </span><span style="color:#33ff33;">true</span><span style="color:#ff0000;">);//得到的是 array</span>  
  3. for($i=0;$i<count($students);$i++){  
  4. echo "姓名:".$students[$i]['name']."年龄:".$students[$i]['age']."专业:".$students[$i]['subject']."<br />";  
  5. }  

0 0