gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 19:20:24 25 4
gpt4 key购买 nike

我将 json 值存储在隐藏字段中,我想在 $_POST 中解码 php 中的 json。该值存储在名为 alldata 的隐藏字段中,我正在 $_POST['alldata'] 中检索,我正在尝试在此 $_POST['alldata'] 变量上使用名为 json_decode 的 php 函数。请告诉我如何解码 php 中的 json。请帮我。提前致谢。

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

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
if($_POST['addtimecard']){
// print_r($_POST);
echo json_decode($_POST['alldata']);
}
?>

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\"}]}

我从中创建 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();
}
?>

最佳答案

问题出在您的报价上。 JSON 中的双引号与您用来分隔值的双引号匹配,因此值在第一个 { 之后结束。将定界引号更改为单引号。

<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 - 如何使用 $_POST 解码存储在 php 隐藏字段中的 javascript json?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33307416/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com