Я пытаюсь передать массив из контроллера в javascript, используя ajax, но он не возвращает как массив, который он возвращает как String - PullRequest
1 голос
/ 09 июля 2020

Вот мой код от контроллера:

<?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 не возвращает массив вместо String. Я новенький в Laravel. Спасибо за помощь

1 Ответ

2 голосов
/ 09 июля 2020

Введите код, как показано ниже.

 public function showOrder($id){
        $result = DB::table('menu_tbl')->where('id',$id)->first();
        return \Response::json($result);

    }

jquery, как показано ниже.

success: function (data){
        alert(data.name);
},
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...