请教:php如何实现json的传值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请教:php如何实现json的传值相关的知识,希望对你有一定的参考价值。

请问,php如何实现json的传值,如果在php的方法中直接echo出json变量,通过js就能捕捉到这个echo的变量吗?要如何实现这种功能呢?

代码都基于jquery

jsonp   可以跨域 例如:

$.ajax(
url:\'example.php\',
type:\'GET\',
dataType:\'jsonp\',
jsonp:\'callback\',
success:function(data)
   /*比如example.php是这样<?php 
$callback=$_REQUEST[\'callback\'];
echo $callback.\'(\'.json_encode(array(\'id\'=>1)).\')\';?>  
这里的data  就是    "id":1
*/


);


不跨域  ajax就可以  例如:

$.ajax(
url:\'example.php\',
type:\'GET\',
dataType:\'json\',
success:function(data)
   //这个data就是返回的json  即example.php  输出的  json    
   比如example.php是这样<?php echo json_encode(array(\'id\'=>1));?>  
    返回的json 就是 "id":1

);
参考技术A 你可以通过CURL进行传值,这个资料你可以在网上找一下 php curl
json是字符串 可以放在变量里进行传值
时间不多 希望对你有所帮助
参考技术B json是字符串,所以直接echo就可以了,js可以直接解析json数组。追问

你好,现在我有个问题,就是跨域名之间的传值问题,环境都是php的,如果我在A网站上echo(json_encode($arr)),B网站通过js就能解析我这个json变量吗?如果能,是如何操作的呀。

追答

你可以用php代码 file_get_contents获取到这个json,
然后直接输出到b网页上
在网页里和数组一样操作就可以了额
比如 var arr=
for( arr……)

……
用法和数组一样,看看js的手册for的具体细节

javascript . 05 json的组成for...in 遍历对象简单数据类型与复杂数据类型的传值与传址内置对象

对象字面量  JSON

    var obj = { aaa :999};  

    var json={"aaa":999,“bbb”:888};

          ”kay“:value

  对象字面2??定义方法和json很像,只有一点不同,json的key 必须加“”   ;

  对象,数组也可以作为键值

JSON的组成

    Javascript Object Notation 对象字面量的一种表现形式 ;

      键名必须有双引号“”包围  ;

    为什么用JSON :对于AJAX应用程序来说,JSON比XML更快更易使用 ;

  JSON语法规则:JSON语法是Javascript对象表示语法的子集:

      a、数据在名称/值对中

      b、数据由逗号分开

      c、花括号保存对象

      d、方括号保存数组

  JSON的值可以是:

    a 、 数字(整数或浮点数)

    b、 字符串(在双引号中)

    c、 逻辑值(true或false)

    d、数组 (在方括号中)

    e、对象(在花括号中)

    f、 null  

  for…in..遍历对象

  

  1. 由于对象本身没有length属性,所以不能用for循环遍历
1.    var json = {  //创建一个对象
    "name" : "赵四",
    "sex" : "男",
    "sayHi" : function (){
        console.log(json.name + ",你好!");
    }
}
for (var key in json){
    console.log(key);//打印键名,不打印键值
    console.log(json[key]);//打印键值
}

 伪代码:类

  1. 强类型语言是用class定义对象
  2. JS的ES6提到了class

 传值和传址

一、简单类型数据做参数,函数内部对参数的修改不应影响外部变量

简单类型传数值。

    简单数据类型保存在栈中

      变量保存的事数据本身/函数调用传递的是值不是地址/压栈,先进后出/地址值:哈希值

二、复杂类型数据做参数,函数内部对参数的修改会应影响外部变量

      复杂类型传地址。

    简单数据类型保存在堆中

      变量保存的事数据的地址

    

var num =1;
fun(num);
console.log(+++ + num );
    function fun(a) {
        a = a *20 ;
        console.log(a);
    }
var arr = [1,2,3];
fun1(arr);
console.log(arr);
function fun1(array) {
    //arr和array是指向的同一个内存地址
    // 函数修改array地址内的内容,arr的内容同时也被修改
    array[0] = 2;
    console.log(array) ;

 

内置对象

  

  1. JS中已经定义好的对象。创建之后可直接使用
  2. Date、Array、Math、Regexp(正则表达式)、Error、String、Number
  3. 主要学习内置对象的API,H5的方法

a)  调用者:有无调用者

b)  参数:有无,几个

c)  功能:干什么用的

d)  返回值:有无,什么类型

  1. 学习方法:手册,MDN
  2. API:应用程序接口

 











以上是关于请教:php如何实现json的传值的主要内容,如果未能解决你的问题,请参考以下文章

请教高手,servlet中如何获取URL中的这种参数

javaweb中页面间的传值问题。求助!

Vue父子组件之间的传值

iOS delegate 实现页面之间的传值

Winform中利用委托实现窗体之间的传值

UI 设置代理 实现视图控制器间的传值操作