繁体   English   中英

如何将数据json从javascript解析到php

[英]how to parsing data json from javascript to php

我想将javascript的json解析为php,这是我的javascript代码

var Dataconvert;
            var asetid = new Array();
            $("#simpanmodifikasi").click(function(){
                var table = $('#tableasal tbody');
                table.find('tr').each(function (row, input) {
                    // var coba = $(this).find('input'),
                    // asetid = coba.eq(0).val();
                    asetid[row] = {
                        "asetid" : $(this).find('input:eq(0)').val(),
                        "namabarang" : $(this).find('input:eq(1)').val(),
                    }
                    Dataconvert = $.toJSON(asetid);
                    $.ajax({
                        url:"<?php echo site_url('fixed/modification/tes');?>",
                        type:"POST",
                        data:Dataconvert,
                        dataType : 'json',
                        cache : false,
                        success:function(html){
                           alert(html);
                         }
                    })                        
                });                   
            })

如何在php中解析此json ??,我是javascript和json的新手,感谢您的帮助

首先 ,您需要将$.toJSON(asetid)更改$.toJSON(asetid) JSON.stringify(asetid) 但是,如果仍然要使用$.toJSON(asetid) ,则需要在页面上包含来自http://code.google.com/p/jquery-json/jquery-json插件。

其次 ,我认为ajax请求部分应该放在迭代器函数之外,否则,您将对表的每一行进行ajax请求。 这是修改后的代码:

 var Dataconvert; var asetid = new Array(); $("#simpanmodifikasi").click(function(){ var table = $('#tableasal tbody'); table.find('tr').each(function (row, input) { // var coba = $(this).find('input'), // asetid = coba.eq(0).val(); asetid[row] = { "asetid" : $(this).find('input:eq(0)').val(), "namabarang" : $(this).find('input:eq(1)').val(), } }); //these should be outside the 'each' iterator Dataconvert = JSON.stringify(asetid); $.ajax({ url:"<?php echo site_url('fixed/modification/tes');?>", type:"POST", data:Dataconvert, dataType : 'json', cache : false, success:function(html){ alert(html); } }) }) 

第三 ,现在是您问题的答案。 ajax请求将在POST正文中发送字符串化的JSON。 例:

[{"asetid":"10","namabarang":"Buku"},{"asetid":"30","namabarang":"Laptop"}]

要从PHP端读取它( fixed/modification/tes脚本),可以从标准输入中手动读取它,并使用json_decode对其进行json_decode

<?php
$data = json_decode(file_get_contents('php://input'), true);
print_r($data);
?>

这将导致如下所示:

Array
(
    [0] => Array
        (
            [asetid] => 10
            [namabarang] => Buku
        )

    [1] => Array
        (
            [asetid] => 30
            [namabarang] => Laptop
        )

)

试试这个会有所帮助:

$data = json_decode(file_get_contents('php://input');

json_decode采用JSON编码的字符串,并将其转换为PHP变量。

现在您可以像这样访问变量。

$firstVariable = $data -> var1;
$secondVariable = $data -> var2;
.....
.....
.....

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM