PHP 如何读取Javascript 对象的值?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP 如何读取Javascript 对象的值?相关的知识,希望对你有一定的参考价值。

代码如下:
javascript端:
var data =
"name":'aaa',
"birthday":'2011-1-1'
;
var url ="run.php?data="+data;

PHP端:
$data = $_REQUEST['data'];

到这里,PHP中如何使用$data获取原来Javascript中的值?
比如说如果是PHP 数组的话可以,$data["name"] 获取它的名字,但是这里$data 不能这么用,请问如何解决???

呵呵,这个问题我刚刚遇到过,也解决掉了,正好回答你。

Javascript端:
var data =
"name":'aaa',
"birthday":'2011-1-1'
;
var url ="run.php?data="+data;
url = url.replace(/&/,"%%8%%"); //简单处理&符号的get传递问题;如果传参时有数字,则尽量避免或更换替换字符串。
url = url.replace(/\?/,"%%7%%"); //简单处理?符号的get传递问题;

//js程序到了这里,会把问号、and符号都转换为特定字符。

PHP端:
$data = $_REQUEST['data'];//这里最好不要使用$_REQUEST,涉及网站安全问题。
$data = str_replace('%%8%%','&',$data);//替换回原有的连接符
$data = str_replace('%%7%%','?',$data);

到这里,就又回来了!

只是经过了一个字符替换的过程,当然,你也可以采取编码的方式传输,最经典的是有一个js编码方法,然后由PHP的urlencode()函数解码,不过这种我没有使用,在js上来说,比较复杂了一些,如果你传输的数据不是太特殊,我介绍的方案已经足够使用了。
————
参考技术A 先序列化,然后再返序列化。php有一对这样的原生函数的。serialize() and unserialize(),具体使用看手册。 参考技术B JS文件中:

var x = array.join('|');//用'|'把数组中的元素拼成字符串
var go = 'http://localhost/member/search.php';//相应PHP文件
var par = 'action=array&x='+x;//把字符串x传过去
var myAjax = new Ajax.Request(go,method:'post',parameters:par);

PHP文件中:

$x = explode('|',$x);//以'|'切割字符串生成数组

//遍历使用
foreach($x as $y)
echo var_dump($y)

参考技术C var url ="run.php?data="+data;
这句话JS应该就报错了吧?
所有的客户端和服务端的传输都是用字符串文本的形式的。URL参数也不例外,你只能是将数组组织下,然后变成字符串,上传上去后,再PHP拿到自己分析出来
参考技术D var url ="run.php?name="+data.name+"&birthday="+data.birthday;

如何使用Javascript读取json文件并将特定键的值写入同一json文件中?

我有一个名为data.json的JSON文件=>

  
  "Type": 
    "section": 
      "os": [
        
           "Name": "Smith",
           "Id": "123"   ]   

现在我需要使用javascript将ID更改为321。

我该怎么办?

我尝试了一些代码,但是徒劳。

let rawdata_one = fs.readFileSync('data.json');
let onedata = JSON.parse(rawdata_one);

 onedata.for(
  function(obj)
  let ob = onedata.findIndex( o => o.Id);
      if(ob == 'Id')
        onedata[ob].Id= '321';                    
      
   
 )

let data = JSON.stringify(onedata);  
fs.writeFileSync('data.json', data);

但是我无法在JSON文件中进行更改。任何人都可以在这部分提供帮助吗?

答案

尝试

const osarr = onedata['Type']['section']['os'];

osarr.forEach((i)=> 
i['Id'] = 321;
)

console.log(onedata)

以上是关于PHP 如何读取Javascript 对象的值?的主要内容,如果未能解决你的问题,请参考以下文章

jsonobject如何获取一个集合里的某个对象所有属性的值

将多个 PHP 变量放入 Javascript 数组

javascript中数组取值的问题,如何取出键值对中的值?

php如何拿到javascript的值

如何使用 EMF 读取 XML 文件?

mvc4中 @Url.Action 如何读取javascript变量的值