javascript - 我正在尝试使用 ajax 将数组从控制器传递到 javascript,但它不作为数组返回,而是作为字符串返回
问题描述
这是我来自控制器的代码:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
class AjaxController extends Controller
{
public function showOrder($id){
$result = DB::select('select * from menu_tbl where id = ?', array($id));
return json_encode($result);
}
}
这是我的javascript代码:
function addOrder(id){
$.ajax({
method: "GET",
url: "/showOrder/"+id,
success: function (data){
alert(data["name"] + " " + data);
//document.getElementById("name").innerHTML = data['name'];
//document.getElementById("price").innerHTML = data['price'];
//$("#buying").modal();
},
});
}
结果如下:
undefined [{"id":1,"name":"Chicken Cordon Bleu","category":"chicken","price":800,"description":"blah blah","img":"img\/mcdonalds-burger.jpg","hot":0,"spicy":0}]
data['name']
返回是undefined
因为我的代码有问题吗?或者DB:select
不返回数组而是一个字符串。我是 Laravel 的新手。谢谢您的帮助
解决方案
使您的代码如下所示。
public function showOrder($id){
$result = DB::table('menu_tbl')->where('id',$id)->first();
return \Response::json($result);
}
jquery 如下。
success: function (data){
alert(data.name);
},