Кто-нибудь знает, как я могу вернуть переменную javascript в ajax вместо строкового значения, а я использую ajax для вызова php. Подробнее см. Ниже:
Ajax:
//Ajax Param var paramList = "Action=make_process"; ajaxRequest = $.ajax({ url: "admin.php", type: 'POST', data: paramList, error: function(){ //error message here }, success: function(data){ //read return javascript variable here; } });
PHP:
public function validationChk() { $error_msg['error_msg'][] = array("msg"=>"hello"); $error_msg['error_msg'][] = array("msg"=>"hi"); echo "var ErrorMapping = " . json_encode($error_msg). ";\n\n"; exit; }
Вам интересно, как вы можете вернуться из ответа AJAX?
Затем ознакомьтесь с этим ответом на вопросы jQuery.
То, что вы пытаетесь сделать, – это не такая уж большая идея. То, что вы, вероятно, хотите, – это декодировать ответ JSON обратно в объект из вашего обратного вызова успеха и затем вернуть его.
Декодирование строки JSON включает в себя передачу через eval и надежду, что у вас нет плохих / вредоносных данных. Безопасный способ сделать это – разобрать JSON в Javascript. Если вам нужно идти по этому маршруту самостоятельно, то, по крайней мере, попытайтесь использовать что-то уже написанное. Искать в Google Code для "json-sans-eval".
Лучшим вариантом будет использование встроенных возможностей jQuery:
jQuery.getJSON( url, [data], [callback] )
Он делает все тяжелое для вас. Потратьте некоторое время на чтение документов jQuery. Там много полезного.