I have a long json string that I send to the PHP server using AJAX post request. My problem is I really can't escape the strings or the values of the said json. Here is the json data
The PHP function on the HTML tab and the json on the JS tab.
The json above have already passed to json_decode function in php and var_dump.
Notice the data at object['rest_data']['q25']['q25_others']
the data is "25 others ""
and must be "25 others \""
. I used this recursive function thinking that will do the work.
The $this->Escape($value)
is with the same class with the recursive function that I use above. And the Escape
function is just for escaping the strings that may cause SQL problems during insert.
Any suggestion.? I'm out of idea. Thanks!
function deep_escape($array){
foreach($array as $key => $value) {
if(is_array($value)){
$this->deep_escape($value);
} else {
$array[$key] = $this->Escape($value);
}
}
return $array;
}
How I create the JSON
all_get_data = {
"q16": $('#survey_question_16').val(),
"q17": {
"q17_select": $('#survey_question_17').val(),
"q17_others": $('#survey_question_17_others').val(),
},
"q18": {
"q18_select": $('#survey_question_18').val(),
"q18_others": $('#survey_question_18_others').val(),
},
"q19": $('#survey_question_19').val(),
"q20a": $('#survey_question_20a').val(),
"q20b": $('#survey_question_20b').val(),
"q21": $('#survey_question_21').val(),
"q22": $('#survey_question_22').val(),
"q23": {
"q23_select": $('#survey_question_23').val(),
"q23_others": $('#survey_question_23_others').val(),
},
"q24": $('#survey_question_24').val(),
"q25": {
"q25_select": $('#survey_question_25').val(),
"q25_others": $('#survey_question_25_others').val(),
},
"q26": {
"q26_select": $('#survey_question_26').val(),
"q26_others": $('#survey_question_26_others').val(),
},
"q27": {
"q27_select": $('#survey_question_27').val(),
"q27_others": $('#survey_question_27_others').val(),
},
"q28": {
"q28_select": $('#survey_question_28').val(),
"q28_others": $('#survey_question_28_others').val(),
},
"q29": {
"q29_select": $('#survey_question_29').val(),
"q29_others": $('#survey_question_29_others').val(),
},
"q30": "",
"q31": $('#survey_question_31').val(),
"q32": $('#survey_question_32').val(),
"q33": {
"q33_select": $('#survey_question_33').val(),
"q33_others": $('#survey_question_33_others').val(),
},
"q34": $('#survey_question_34').val(),
};
Object dump
array(5) {["part_i"]=>
array(11) {["name"]=>string(0) ""
["permAdd"]=>string(0) ""
["email"]=>string(0) ""
["con_no"]=>string(0) ""
["mo_no"]=>string(0) ""
["civil"]=>NULL
["gender"]=>NULL
["bday"]=>string(0) ""
["region"]=>NULL
["province"]=>string(0) ""
["locationResidence"]=>NULL
}
["part_ii"]=>array(3) {
["row1"]=>array(4) {
["el_1"]=>string(0) ""
["el_2"]=>string(0) ""
["el_3"]=>string(0) ""
["el_4"]=>string(0) ""
}
["row2"]=>array(4) {
["el_1"]=>string(0) ""
["el_2"]=>string(0) ""
["el_3"]=>string(0) ""
["el_4"]=>string(0) ""
}
["row3"]=>array(3) {
["el_1"]=>string(0) ""
["el_2"]=>string(0) ""
["el_4"]=>string(0) ""
}
}
["part_iii"]=>array(2) {
["erow1"]=>array(3) {
["eel_1"]=>string(0) ""
["eel_2"]=>string(0) ""
["eel_3"]=>string(0) ""
}
["erow2"]=>array(3) {
["eel_1"]=>string(0) ""
["eel_2"]=>string(0) ""
["eel_3"]=>string(0) ""
}
}
["part_iv"]=>array(2) {
["q15a"]=>array(3) {
["q15a_row1"]=>array(3) {
["q15a_el1"]=>string(0) ""
["q15a_el2"]=>string(0) ""
["q15a_el3"]=>string(0) ""
}
["q15a_row2"]=>array(3) {
["q15a_el1"]=>string(0) ""
["q15a_el2"]=>string(0) ""
["q15a_el3"]=>string(0) ""
}
["q15a_row3"]=>array(3) {
["q15a_el1"]=>string(0) ""
["q15a_el2"]=>string(0) ""
["q15a_el3"]=>string(0) ""
}
}
["q15b"]=>array(2) {
["q15b_select"]=>NULL
["q15b_others"]=>string(0) ""
}
}
["rest_data"]=>array(20) {
["q16"]=>NULL
["q17"]=>array(2) {
["q17_select"]=>array(0) {}
["q17_others"]=>string(0) ""
}
["q18"]=>array(2) {
["q18_select"]=>NULL
["q18_others"]=>string(0) ""
}
["q19"]=>string(0) ""
["q20a"]=>string(2) ""'"
["q20b"]=>NULL
["q21"]=>NULL
["q22"]=>NULL
["q23"]=>array(2) {
["q23_select"]=>array(0) {}
["q23_others"]=>string(0) ""
}
["q24"]=>NULL
["q25"]=>array(2) {
["q25_select"]=>array(5) {
[0]=>string(21) "Salaries_and_Benefits"
[1]=>string(16) "Career_challenge"
[2]=>string(25) "Related_to_special_skills"
[3]=>string(22) "Proximity_to_residence"
[4]=>string(5) "other"
}
["q25_others"]=>string(11) "25 others ""
}
["q26"]=>array(2) {
["q26_select"]=>array(0) {}
["q26_others"]=>string(0) ""
}
["q27"]=>array(2) {
["q27_select"]=>NULL
["q27_others"]=>string(0) ""
}
["q28"]=>array(2) {
["q28_select"]=>NULL
["q28_others"]=>string(0) ""
}
["q29"]=>array(2) {
["q29_select"]=>NULL
["q29_others"]=>string(0) ""
}
["q30"]=>
string(0) ""
["q31"]=>
NULL
["q32"]=>
NULL
["q33"]=>
array(1) {
["q33_select"]=>
array(0) {
}
}
["q34"]=>
string(0) ""
}
}
JSON structure
{
"part_i": {
"name": "",
"permAdd": "",
"email": "",
"con_no": "",
"mo_no": "",
"civil": null,
"gender": null,
"bday": "",
"region": null,
"province": "",
"locationResidence": null
},
"part_ii": {
"row1": {
"el_1": "",
"el_2": "",
"el_3": "",
"el_4": ""
},
"row2": {
"el_1": "",
"el_2": "",
"el_3": "",
"el_4": ""
},
"row3": {
"el_1": "",
"el_2": "",
"el_4": ""
}
},
"part_iii": {
"erow1": {
"eel_1": "",
"eel_2": "",
"eel_3": ""
},
"erow2": {
"eel_1": "",
"eel_2": "",
"eel_3": ""
}
},
"part_iv": {
"q15a": {
"q15a_row1": {
"q15a_el1": "",
"q15a_el2": "",
"q15a_el3": ""
},
"q15a_row2": {
"q15a_el1": "",
"q15a_el2": "",
"q15a_el3": ""
},
"q15a_row3": {
"q15a_el1": "",
"q15a_el2": "",
"q15a_el3": ""
}
},
"q15b": {
"q15b_select": null,
"q15b_others": ""
}
},
"rest_data": {
"q16": null,
"q17": {
"q17_select": [],
"q17_others": [""]
},
"q18": {
"q18_select": null,
"q18_others": ""
},
"q19": "",
"q20a": "'",
"q20b": null,
"q21": null,
"q22": null,
"q23": {
"q23_select": [],
"q23_others": ""
},
"q24": null,
"q25": {
"q25_select": [
"Salaries_and_Benefits",
"Career_challenge",
"Related_to_special_skills",
"Proximity_to_residence",
"other"
],
"q25_others": "25 others "
},
"q26": {
"q26_select": [],
"q26_others": ""
},
"q27": {
"q27_select": null,
"q27_others": ""
},
"q28": {
"q28_select": null,
"q28_others": ""
},
"q29": {
"q29_select": null,
"q29_others": ""
},
"q30": "",
"q31": null,
"q32": null,
"q33": {
"q33_select": []
},
"q34": ""
}
}