Я работаю над формой, посредством которой передаю значения из внешнего интерфейса в внутренний с помощью AJAX. Из внешнего интерфейса все данные передаются нормально, за исключением того, что после выполнения некоторой логики на внутреннем интерфейсе мне необходимо перенести данные в внешний интерфейс. Данные содержатся в 2 отдельных переменных, в результате чего я преобразовал каждую в объект JSON для передачи.
Когда я dd () данных в бэкэнде, я получаю их в виде строки.
Проблема заключается в том, что когда я регистрирую ответ на вкладке консоли (из кода AJAX), я не получаю никакого ответа от бэкэнда .. Пожалуйста, помогите?
Файл контроллера, содержащий код PHP
public
function validatePlanEntries(Request $request)
{
//dd($request->all());
//Other PHP logic
//Convert data to JSON format
$form = json_encode($oldata);
//dd($form);
$planJson = json_encode($plans_benefits);
$plans = compact(['planJson' , 'form']);
//dd($plans);
return $plans;
}
AJAX-код, получающий ответ от контроллера выше
<script>
//Other Js code
form.parsley().validate();
//Returns true if Parsley validation has no errors
if (form.parsley().isValid()){
$.ajax({
type: "POST",
url: "getplans",
data:JSON.stringify(type),
contentType: 'application/json',
dataType: "json",
success: function(response){
console.log(response);
},
failure: function(errMsg) {
alert(errMsg);
}
});
};
</script>
Я бы не конвертировал их в 2 отдельных значения в кодировке JSON, а вместо этого добавил бы их в 1. Итак, вместо …
//Convert data to JSON format
$form = json_encode($oldata);
//dd($form);
$planJson = json_encode($plans_benefits);
$plans = compact(['planJson' , 'form']);
//dd($plans);
return $plans;
Что-то вроде, построить массив с обеими частями данных и json_encode()
результат…
return json_encode([ "form" => $oldata, "plan" => $plans_benefits]);
Вам нужно будет обновить ваш Javascript, чтобы извлечь соответствующие части ответа.
Обновить:
Я не Laravel человек, но, кажется, вы можете использовать …
return \Response::json([ "form" => $oldata, "plan" => $plans_benefits]);
Других решений пока нет …