简体   繁体   English

如何使用$ _POST解码php中隐藏字段中存储的javascript json?

[英]How to decode javascript json stored in a hidden field in php using $_POST?

I have json values stored in a hidden field and i want to decode the json in php in the $_POST. 我将json值存储在一个隐藏字段中,我想在$ _POST中的php中解码json。 The value is stored in the hidden field named alldata and i am retrieving in the $_POST['alldata'] and i am trying the php function named json_decode on this $_POST['alldata'] variable. 该值存储在名为alldata的隐藏字段中,而我正在$ _POST ['alldata']中检索,并且我正在此$ _POST ['alldata']变量上尝试名为json_decode的php函数。 Please tell me how can i decode the json in php. 请告诉我如何解码php中的json。 Please help me. 请帮我。 Thanks in advance. 提前致谢。

HTML HTML

<input type="hidden" name="alldata" id="alldata" value="{"email2":"nitinjohnson316@gmail.com","class_rate":"10.000","admin_rate":"20.000","late_charge":"10.000","final_data":[{"pre_assignment_id":"4","user_id":"2","session_id":"52","school":"Admin","day_of_week":"","start_date":"1970-01-01","end_date":"1970-01-01","expense_allowance_value":"0","hours_allowed":"5","event_id":"999999","event_title":"Admin","event_description":null,"event_category":"Admin","event_status":"Active","event_status_num":"5","event_timecard":"A","session_dayofweek":"","session_start_date":"0000-00-00","session_end_date":"0000-00-00","refresh_tmstp":"2015-10-10 18:02:35"},{"pre_assignment_id":"3","user_id":"2","session_id":"16","school":"Bethany Elementary","day_of_week":"Wed","start_date":"2015-09-09","end_date":"2015-12-12","expense_allowance_value":"5","hours_allowed":"0","event_id":"3481","event_title":"Fall 2015 - Bethany Elementary Chess Program - Plano ISD","event_description":null,"event_category":"Bethany Elementary","event_status":"Ongoing","event_status_num":"3","event_timecard":"C","session_dayofweek":"Wed","session_start_date":"2015-09-09","session_end_date":"2015-12-09","refresh_tmstp":"2015-10-10 18:02:35"},{"pre_assignment_id":"2","user_id":"2","session_id":"15","school":"Ashley Elementary","day_of_week":"Mon","start_date":"2015-09-14","end_date":"2015-12-12","expense_allowance_value":"15","hours_allowed":"0","event_id":"3511","event_title":"Fall 2015 - Ashley Elementary Chess Program - Frisco ISD","event_description":null,"event_category":"Ashley Elementary","event_status":"Ongoing","event_status_num":"3","event_timecard":"C","session_dayofweek":"Mon","session_start_date":"2015-09-14","session_end_date":"2015-12-07","refresh_tmstp":"2015-10-10 18:02:35"},{"pre_assignment_id":"1","user_id":"2","session_id":"14","school":"Anderson Elementary","day_of_week":"Mon","start_date":"2015-09-21","end_date":"2015-12-12","expense_allowance_value":"5","hours_allowed":"0","event_id":"3613","event_title":"Fall 2015 - Anderson Elementary Chess Program - Frisco ISD","event_description":null,"event_category":"Anderson Elementary","event_status":"Active Hidden","event_status_num":"2","event_timecard":"C","session_dayofweek":"Mon","session_start_date":"2015-09-21","session_end_date":"2015-12-07","refresh_tmstp":"2015-10-10 18:02:35"}]}">

Javascript 使用Javascript

jQuery("#txtweek").change(function(){
        if(jQuery("select[name='txtuser'] option:selected").text()=='--select--'){          
            alert("Please select a user first to proceed");
            return false;
        } else {
            jQuery.ajax({
                url:ajaxurl,
                type:'post',
                data:{action:'timecardapp_manage_timecard_stepone',user_id: jQuery("#txtuser").val()},
                success: function(response){                            
                    var data=JSON.parse(response);
                    // i am adding json value to hidden field from here
                    jQuery("#alldata").val(JSON.stringify(data));                   
                    var currentweek = jQuery("#txtweek option:selected").text();
                    var days_date = new Array();
                    function pad(str) {
                      return ("0"+str).slice(-2);
                    }
                    function getNextDay(str) { 
                      var parts = str.split("-");
                      var mon_day = new Date(parts[2], parts[0] - 1, parseInt(parts[1], 10) + 0, 12, 0, 0, 0);
                      var tue_day = new Date(parts[2], parts[0] - 1, parseInt(parts[1], 10) + 1, 12, 0, 0, 0);
                      var wed_day = new Date(parts[2], parts[0] - 1, parseInt(parts[1], 10) + 2, 12, 0, 0, 0);
                      var thu_day = new Date(parts[2], parts[0] - 1, parseInt(parts[1], 10) + 3, 12, 0, 0, 0);
                      var fri_day = new Date(parts[2], parts[0] - 1, parseInt(parts[1], 10) + 4, 12, 0, 0, 0);
                      days_date[0] = ""+pad(mon_day.getMonth()+1)+"-"+ pad(mon_day.getDate())+"-"+mon_day.getFullYear();
                      days_date[1] = ""+pad(tue_day.getMonth()+1)+"-"+ pad(tue_day.getDate())+"-"+tue_day.getFullYear();
                      days_date[2] = ""+pad(wed_day.getMonth()+1)+"-"+ pad(wed_day.getDate())+"-"+wed_day.getFullYear();
                      days_date[3] = ""+pad(thu_day.getMonth()+1)+"-"+ pad(thu_day.getDate())+"-"+thu_day.getFullYear();
                      days_date[4] = ""+pad(fri_day.getMonth()+1)+"-"+ pad(fri_day.getDate())+"-"+fri_day.getFullYear();

                    }

                    var currentweek = jQuery("#txtweek option:selected").text(), // no values available
                    next_day = new Date(); // or some other default

                    if (currentweek && currentweek.indexOf("--") == -1) { // not the first
                      next_day=getNextDay(currentweek);
                    }

                    var trHTML = '';
                    var number_of_classes = 0;
                    var totalexpense = 0;
                    var totaladminhours = 0;

                    jQuery.each(data.final_data, function (i, item) {
                        if(item.event_title == 'Admin'){
                            //Monday
                            trHTML += '<tr>';
                            trHTML += '<td>'+item.event_title+'</td>';
                            trHTML += '<td>Mon</td>';
                            trHTML += '<td>'+days_date[0]+'</td>';
                            trHTML += '<td>Y</td>';
                            trHTML += '<td>'+item.start_date+'</td>';
                            trHTML += '<td>'+item.end_date+'</td>';
                            trHTML += '<td>&nbsp;</td>';
                            trHTML += '<td>&nbsp;</td>';
                            trHTML += '<td>'+item.expense_allowance_value+'</td>';
                            trHTML += '<td>'+item.hours_allowed+'</td>';
                            trHTML += '</tr>';

                            //Tuesday
                            trHTML += '<tr>';
                            trHTML += '<td>'+item.event_title+'</td>';
                            trHTML += '<td>Tue</td>';
                            trHTML += '<td>'+days_date[1]+'</td>';
                            trHTML += '<td>Y</td>';
                            trHTML += '<td>'+item.start_date+'</td>';
                            trHTML += '<td>'+item.end_date+'</td>';
                            trHTML += '<td>&nbsp;</td>';
                            trHTML += '<td>&nbsp;</td>';
                            trHTML += '<td>'+item.expense_allowance_value+'</td>';
                            trHTML += '<td>'+item.hours_allowed+'</td>';
                            trHTML += '</tr>';

                            //Wednesday
                            trHTML += '<tr>';
                            trHTML += '<td>'+item.event_title+'</td>';
                            trHTML += '<td>Wed</td>';
                            trHTML += '<td>'+days_date[2]+'</td>';
                            trHTML += '<td>Y</td>';
                            trHTML += '<td>'+item.start_date+'</td>';
                            trHTML += '<td>'+item.end_date+'</td>';
                            trHTML += '<td>&nbsp;</td>';
                            trHTML += '<td>&nbsp;</td>';
                            trHTML += '<td>'+item.expense_allowance_value+'</td>';
                            trHTML += '<td>'+item.hours_allowed+'</td>';
                            trHTML += '</tr>';

                            //Thursday
                            trHTML += '<tr>';
                            trHTML += '<td>'+item.event_title+'</td>';
                            trHTML += '<td>Thu</td>';
                            trHTML += '<td>'+days_date[3]+'</td>';
                            trHTML += '<td>Y</td>';
                            trHTML += '<td>'+item.start_date+'</td>';
                            trHTML += '<td>'+item.end_date+'</td>';
                            trHTML += '<td>&nbsp;</td>';
                            trHTML += '<td>&nbsp;</td>';
                            trHTML += '<td>'+item.expense_allowance_value+'</td>';
                            trHTML += '<td>'+item.hours_allowed+'</td>';
                            trHTML += '</tr>';

                            //Friday
                            trHTML += '<tr>';
                            trHTML += '<td>'+item.event_title+'</td>';
                            trHTML += '<td>Fri</td>';
                            trHTML += '<td>'+days_date[4]+'</td>';
                            trHTML += '<td>Y</td>';
                            trHTML += '<td>'+item.start_date+'</td>';
                            trHTML += '<td>'+item.end_date+'</td>';
                            trHTML += '<td>&nbsp;</td>';
                            trHTML += '<td>&nbsp;</td>';
                            trHTML += '<td>'+item.expense_allowance_value+'</td>';
                            trHTML += '<td>'+item.hours_allowed+'</td>';
                            trHTML += '</tr>';

                        } else {
                            trHTML += '<tr>';
                            trHTML += '<td>'+item.event_title+'</td>';
                            trHTML += '<td>'+item.day_of_week+'</td>';
                            if(item.day_of_week=='Mon'){
                                trHTML += '<td>'+days_date[0]+'</td>';
                            }
                            if(item.day_of_week=='Tue'){
                                trHTML += '<td>'+days_date[1]+'</td>';
                            }
                            if(item.day_of_week=='Wed'){
                                trHTML += '<td>'+days_date[2]+'</td>';
                            }
                            if(item.day_of_week=='Thu'){
                                trHTML += '<td>'+days_date[3]+'</td>';
                            }
                            if(item.day_of_week=='Fri'){
                                trHTML += '<td>'+days_date[4]+'</td>';
                            }
                            trHTML += '<td>Y</td>';
                            trHTML += '<td>'+item.start_date+'</td>';
                            trHTML += '<td>'+item.end_date+'</td>';
                            trHTML += '<td><input type="checkbox" name="presentdays[]" /></td>';
                            trHTML += '<td><input type="checkbox" name="latedays[]" /></td>';
                            trHTML += '<td>'+item.expense_allowance_value+'</td>';
                            trHTML += '<td>'+item.hours_allowed+'</td>';
                            trHTML += '</tr>';

                            number_of_classes++;
                            totalexpense = +totalexpense + +item.expense_allowance_value;
                            totaladminhours = totaladminhours + item.hours_allowed;
                        }

                    });

                    jQuery('#steptwotable').find('tbody').empty();
                    jQuery('#steptwotable').find('tbody').append(trHTML);

                    var totalclasses = number_of_classes * jQuery("input[name='txtclassrate']").val();
                    var totaladminrate = totaladminhours * jQuery("input[name='txtadminrate']").val();
                    var trHTML2 = '';
                    trHTML2 += '<tr>';
                    trHTML2 += '<td>'+number_of_classes+'</td>';
                    trHTML2 += '<td><input type="text" value="'+totalclasses+'" readonly /></td>';
                    trHTML2 += '<td><input type="text" value="" readonly /></td>';
                    trHTML2 += '<td><input type="text" value="'+totalexpense+'" readonly /></td>';
                    trHTML2 += '<td><input type="text" value="'+totaladminrate+'" readonly /></td>';
                    trHTML2 += '</tr>';
                    jQuery('#stepthreetable').find('tbody').empty();
                    jQuery('#stepthreetable').find('tbody').append(trHTML2);

                }
            });
        }
    });

PHP PHP

<?php
if($_POST['addtimecard']){
        // print_r($_POST);
        echo json_decode($_POST['alldata']);
    }
?>

PHP print_r output PHP print_r输出

Array ( [txtuser] => 2 [txtemail2] => nitinjohnson316@gmail.com [txtclassrate] => 10.000 [txtadminrate] => 20.000 [txtweek] => 08-31-2015 [txtcomment] => [alldata] => {\"email2\":\"nitinjohnson316@gmail.com\",\"class_rate\":\"10.000\",\"admin_rate\":\"20.000\",\"late_charge\":\"10.000\",\"final_data\":[{\"pre_assignment_id\":\"4\",\"user_id\":\"2\",\"session_id\":\"52\",\"school\":\"Admin\",\"day_of_week\":\"\",\"start_date\":\"1970-01-01\",\"end_date\":\"1970-01-01\",\"expense_allowance_value\":\"0\",\"hours_allowed\":\"5\",\"event_id\":\"999999\",\"event_title\":\"Admin\",\"event_description\":null,\"event_category\":\"Admin\",\"event_status\":\"Active\",\"event_status_num\":\"5\",\"event_timecard\":\"A\",\"session_dayofweek\":\"\",\"session_start_date\":\"0000-00-00\",\"session_end_date\":\"0000-00-00\",\"refresh_tmstp\":\"2015-10-10 18:02:35\"},{\"pre_assignment_id\":\"3\",\"user_id\":\"2\",\"session_id\":\"16\",\"school\":\"Bethany Elementary\",\"day_of_week\":\"Wed\",\"start_date\":\"2015-09-09\",\"end_date\":\"2015-12-12\",\"expense_allowance_value\":\"5\",\"hours_allowed\":\"0\",\"event_id\":\"3481\",\"event_title\":\"Fall 2015 - Bethany Elementary Chess Program - Plano ISD\",\"event_description\":null,\"event_category\":\"Bethany Elementary\",\"event_status\":\"Ongoing\",\"event_status_num\":\"3\",\"event_timecard\":\"C\",\"session_dayofweek\":\"Wed\",\"session_start_date\":\"2015-09-09\",\"session_end_date\":\"2015-12-09\",\"refresh_tmstp\":\"2015-10-10 18:02:35\"},{\"pre_assignment_id\":\"2\",\"user_id\":\"2\",\"session_id\":\"15\",\"school\":\"Ashley Elementary\",\"day_of_week\":\"Mon\",\"start_date\":\"2015-09-14\",\"end_date\":\"2015-12-12\",\"expense_allowance_value\":\"15\",\"hours_allowed\":\"0\",\"event_id\":\"3511\",\"event_title\":\"Fall 2015 - Ashley Elementary Chess Program - Frisco ISD\",\"event_description\":null,\"event_category\":\"Ashley Elementary\",\"event_status\":\"Ongoing\",\"event_status_num\":\"3\",\"event_timecard\":\"C\",\"session_dayofweek\":\"Mon\",\"session_start_date\":\"2015-09-14\",\"session_end_date\":\"2015-12-07\",\"refresh_tmstp\":\"2015-10-10 18:02:35\"},{\"pre_assignment_id\":\"1\",\"user_id\":\"2\",\"session_id\":\"14\",\"school\":\"Anderson Elementary\",\"day_of_week\":\"Mon\",\"start_date\":\"2015-09-21\",\"end_date\":\"2015-12-12\",\"expense_allowance_value\":\"5\",\"hours_allowed\":\"0\",\"event_id\":\"3613\",\"event_title\":\"Fall 2015 - Anderson Elementary Chess Program - Frisco ISD\",\"event_description\":null,\"event_category\":\"Anderson Elementary\",\"event_status\":\"Active Hidden\",\"event_status_num\":\"2\",\"event_timecard\":\"C\",\"session_dayofweek\":\"Mon\",\"session_start_date\":\"2015-09-21\",\"session_end_date\":\"2015-12-07\",\"refresh_tmstp\":\"2015-10-10 18:02:35\"}]} [addtimecard] => Save ) {\"email2\":\"nitinjohnson316@gmail.com\",\"class_rate\":\"10.000\",\"admin_rate\":\"20.000\",\"late_charge\":\"10.000\",\"final_data\":[{\"pre_assignment_id\":\"4\",\"user_id\":\"2\",\"session_id\":\"52\",\"school\":\"Admin\",\"day_of_week\":\"\",\"start_date\":\"1970-01-01\",\"end_date\":\"1970-01-01\",\"expense_allowance_value\":\"0\",\"hours_allowed\":\"5\",\"event_id\":\"999999\",\"event_title\":\"Admin\",\"event_description\":null,\"event_category\":\"Admin\",\"event_status\":\"Active\",\"event_status_num\":\"5\",\"event_timecard\":\"A\",\"session_dayofweek\":\"\",\"session_start_date\":\"0000-00-00\",\"session_end_date\":\"0000-00-00\",\"refresh_tmstp\":\"2015-10-10 18:02:35\"},{\"pre_assignment_id\":\"3\",\"user_id\":\"2\",\"session_id\":\"16\",\"school\":\"Bethany Elementary\",\"day_of_week\":\"Wed\",\"start_date\":\"2015-09-09\",\"end_date\":\"2015-12-12\",\"expense_allowance_value\":\"5\",\"hours_allowed\":\"0\",\"event_id\":\"3481\",\"event_title\":\"Fall 2015 - Bethany Elementary Chess Program - Plano ISD\",\"event_description\":null,\"event_category\":\"Bethany Elementary\",\"event_status\":\"Ongoing\",\"event_status_num\":\"3\",\"event_timecard\":\"C\",\"session_dayofweek\":\"Wed\",\"session_start_date\":\"2015-09-09\",\"session_end_date\":\"2015-12-09\",\"refresh_tmstp\":\"2015-10-10 18:02:35\"},{\"pre_assignment_id\":\"2\",\"user_id\":\"2\",\"session_id\":\"15\",\"school\":\"Ashley Elementary\",\"day_of_week\":\"Mon\",\"start_date\":\"2015-09-14\",\"end_date\":\"2015-12-12\",\"expense_allowance_value\":\"15\",\"hours_allowed\":\"0\",\"event_id\":\"3511\",\"event_title\":\"Fall 2015 - Ashley Elementary Chess Program - Frisco ISD\",\"event_description\":null,\"event_category\":\"Ashley Elementary\",\"event_status\":\"Ongoing\",\"event_status_num\":\"3\",\"event_timecard\":\"C\",\"session_dayofweek\":\"Mon\",\"session_start_date\":\"2015-09-14\",\"session_end_date\":\"2015-12-07\",\"refresh_tmstp\":\"2015-10-10 18:02:35\"},{\"pre_assignment_id\":\"1\",\"user_id\":\"2\",\"session_id\":\"14\",\"school\":\"Anderson Elementary\",\"day_of_week\":\"Mon\",\"start_date\":\"2015-09-21\",\"end_date\":\"2015-12-12\",\"expense_allowance_value\":\"5\",\"hours_allowed\":\"0\",\"event_id\":\"3613\",\"event_title\":\"Fall 2015 - Anderson Elementary Chess Program - Frisco ISD\",\"event_description\":null,\"event_category\":\"Anderson Elementary\",\"event_status\":\"Active Hidden\",\"event_status_num\":\"2\",\"event_timecard\":\"C\",\"session_dayofweek\":\"Mon\",\"session_start_date\":\"2015-09-21\",\"session_end_date\":\"2015-12-07\",\"refresh_tmstp\":\"2015-10-10 18:02:35\"}]}

PHP Function from which i am creating the JSON 我从中创建JSON的PHP函数

<?php
add_action('wp_ajax_timecardapp_manage_timecard_stepone','timecardapp_manage_timecard_stepone');
add_action('wp_ajax_nopriv_timecardapp_manage_timecard_stepone','timecardapp_manage_timecard_stepone');

function timecardapp_manage_timecard_stepone(){
    global $wpdb;
    $wpdb->sessions = $wpdb->prefix . 'tc_sessions';    
    $wpdb->contractor = $wpdb->prefix . 'tc_contractor';
    $get_results=$wpdb->get_results("SELECT * FROM $wpdb->contractor WHERE user_id='".$_POST['user_id']."' ");
    $result;
    foreach($get_results as $row){
        $result['email2'] = $row->email2;
        $result['class_rate'] = $row->class_rate;
        $result['admin_rate'] = $row->admin_rate;
        $result['late_charge'] = $row->late_charge;
    }

    $wpdb->pre_assignments = $wpdb->prefix . 'tc_pre_assignments';
    $session_ids;
    $get_pre_assignments=$wpdb->get_results("SELECT * FROM $wpdb->pre_assignments WHERE user_id='".$_POST['user_id']."' ORDER BY start_date, FIELD(start_date,'Sun','Mon','Tue','Wed','Thu','Fri','Sat') ");
    foreach($get_pre_assignments as $row){
        $session_ids[] = $row->session_id;
    }

    $final_session_ids=implode(",",$session_ids);
    $get_pre_assignments=$wpdb->get_results("SELECT * FROM $wpdb->pre_assignments join $wpdb->sessions ON $wpdb->pre_assignments.session_id=$wpdb->sessions.session_id WHERE $wpdb->sessions.session_id IN(".$final_session_ids.") and user_id='".$_POST['user_id']."' ORDER BY start_date, FIELD(start_date,'Sun','Mon','Tue','Wed','Thu','Fri','Sat') ");

    $final_data;
    foreach($get_pre_assignments as $row){
        $final_data[] = $row;
    }
    $result['final_data']=$final_data;
    $session_names=get_session_detail_by_id($final_session_ids);

    echo json_encode($result);
    die();
}
?>

The problem is with your quoting. 问题在于您的报价。 The double quotes in the JSON are matching the double quotes you used to delimit the value, so the value is ending after the first { . JSON中的双引号与您用来定界值的双引号匹配,因此该值在第一个{之后结束。 Change the delimiter quotes to single quotes. 将定界符引号更改为单引号。

<input type="hidden" name="alldata" id="alldata" value='{"email2":"nitinjohnson316@gmail.com","class_rate":"10.000","admin_rate":"20.000","late_charge":"10.000","final_data":[{"pre_assignment_id":"4","user_id":"2","session_id":"52","school":"Admin","day_of_week":"","start_date":"1970-01-01","end_date":"1970-01-01","expense_allowance_value":"0","hours_allowed":"5","event_id":"999999","event_title":"Admin","event_description":null,"event_category":"Admin","event_status":"Active","event_status_num":"5","event_timecard":"A","session_dayofweek":"","session_start_date":"0000-00-00","session_end_date":"0000-00-00","refresh_tmstp":"2015-10-10 18:02:35"},{"pre_assignment_id":"3","user_id":"2","session_id":"16","school":"Bethany Elementary","day_of_week":"Wed","start_date":"2015-09-09","end_date":"2015-12-12","expense_allowance_value":"5","hours_allowed":"0","event_id":"3481","event_title":"Fall 2015 - Bethany Elementary Chess Program - Plano ISD","event_description":null,"event_category":"Bethany Elementary","event_status":"Ongoing","event_status_num":"3","event_timecard":"C","session_dayofweek":"Wed","session_start_date":"2015-09-09","session_end_date":"2015-12-09","refresh_tmstp":"2015-10-10 18:02:35"},{"pre_assignment_id":"2","user_id":"2","session_id":"15","school":"Ashley Elementary","day_of_week":"Mon","start_date":"2015-09-14","end_date":"2015-12-12","expense_allowance_value":"15","hours_allowed":"0","event_id":"3511","event_title":"Fall 2015 - Ashley Elementary Chess Program - Frisco ISD","event_description":null,"event_category":"Ashley Elementary","event_status":"Ongoing","event_status_num":"3","event_timecard":"C","session_dayofweek":"Mon","session_start_date":"2015-09-14","session_end_date":"2015-12-07","refresh_tmstp":"2015-10-10 18:02:35"},{"pre_assignment_id":"1","user_id":"2","session_id":"14","school":"Anderson Elementary","day_of_week":"Mon","start_date":"2015-09-21","end_date":"2015-12-12","expense_allowance_value":"5","hours_allowed":"0","event_id":"3613","event_title":"Fall 2015 - Anderson Elementary Chess Program - Frisco ISD","event_description":null,"event_category":"Anderson Elementary","event_status":"Active Hidden","event_status_num":"2","event_timecard":"C","session_dayofweek":"Mon","session_start_date":"2015-09-21","session_end_date":"2015-12-07","refresh_tmstp":"2015-10-10 18:02:35"}]}'>

Try this, 尝试这个,

$a = $_POST['alldata'];
$arr = json_decode($a);

$email = $arr->email2;
$class_rate = $arr->class_rate;

...

To access final_data , 要访问final_data

foreach($arr->final_data as $row) {
     echo $row->pre_assignment_id;
     echo $row->user_id;

     ....

}

In the same way try to access all required variables. 以相同的方式尝试访问所有必需的变量。

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

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