Laravel Как я могу вернуть просмотр данных с помощью repone json (оба за 1 раз)? - PullRequest
0 голосов
/ 11 апреля 2019
public function index(Request $request)
{
    $search_book = $request->id;

    $proc=DB::select(DB::raw("SELECT * FROM BOOKS WHERE BOOKID = '$Search_book'")

    if ($search_book!="") {
        return response()->json($proc);
        return view('status.status',[ 
          'proc' => $proc
    ]);
}

Как вернуть 2 данных

Ответы [ 3 ]

1 голос
/ 11 апреля 2019

Чтобы определить, является ли запрос ajax-запросом, вы можете использовать метод ajax() для объекта Request, введенного в действие controll:

public function index(Request $request)
{
    $results = DB::table('books')
        ->where('bookid', $request->id)
        ->get();

    if ($request->ajax()) {
        return response()->json($results);
    }

    return view('status.status', [
       'proc' => $results
    ]);
}

Я продолжил и исправил внедрение SQLУязвимость в вашем запросе для вас путем замены запроса на правильный.Его все еще можно улучшить, используя модель Book вместо простого запроса к базе данных, но это также хорошо.


Запрос из вашего комментария можно упростить, заменив left join.Просто возьмите подзапрос в качестве базового и right join его с processspj:

DB::table('processtrans as pt')
    ->leftJoin('processmaster as pm', 'pm.pcm_id', '=', 'pt.pct_pcm_id')
    ->rightJoin('processspj as ps', 'ps.pc_id', '=', 'pt.pct_pc_id')
    ->where('pt.pct_pc_id', $request->id)
    ->select([
        'ps.*',
        'pm.pcm_bname',
        'pt.created_at',
        'pt.updated_at',
        'pt.pct_id',
        'pt.pct_leadtime',
        'pt.pct_pcm_id',
        'pt.pct_pc_id',
        'pt.pct_planfinishdate',
        'pt.pct_startdate',
        'pt.pct_status',
    ])
    ->get();
0 голосов
/ 12 апреля 2019

Просто сохраните визуализированный вид в переменной и выполните ответ json:

public function index(Request $request) {
  $results = DB::table('books')
    ->where('bookid', $request->id)
    ->get();
if ($results) {
    $view = view('status.status', [
   'proc' => $results
        ])->render();

    return response()->json(['view'=> $view, 'proc' => '$results']);
 }
}
0 голосов
/ 11 апреля 2019
$(document).ready(function(){
$("#dl_books").change(function()
    {
        var getValue=$(this).val();
        $.ajax({
            type: 'GET',
            url: '{{route('status')}}',
            data: {id:getValue},

            success:function(data)
            {
                //Json for value textbox
                $("#txtbookname").text(data[0].pcm_bname);
             }

        });
    });
    });
...