簡體   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