将包含一些 JSON 字符串的数组从 PHP 发送到 AJAX 时出现问题
Problem sending an array containing some JSON string to AJAX from PHP
我正在处理一种表单,使用 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]);
我正在处理一种表单,使用 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]);