У меня возникли проблемы с раскрывающимся списком выбора при использовании Laravel 10 и Ajax.Php

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 У меня возникли проблемы с раскрывающимся списком выбора при использовании Laravel 10 и Ajax.

Сообщение Anonymous »

Я пытался создать два раскрывающихся списка для создания заказа (pedido), где первый выбор предназначен для клиентов (clientes), а второй — для контактов клиента (contatos). (клиенты имеют много контактов)
Вот мои текущие настройки:
Маршруты:
Route::post('/pedidos/create/{id}',[ClienteController::class, 'getContato']);
Route::get('/pedidos/create',[ClienteController::class, 'getCliente']);

Контроллеры:
В Pedido Controller.php:
public function create() {
$query = DB::select("SELECT * FROM `clientes` WHERE deleted_at IS null");
$clientes = collect($query)->toArray();
$query = DB::select("SELECT contatos.nome, contatos.id FROM `contatos` INNER JOIN `clientes` ON clientes.id = contatos.clientes_id AND contatos.deleted_at IS null;");
$contatos = collect($query)->toArray();
return view('pedidos.create', ['clientes'=>$clientes], ['contatos'=>$contatos]);
}

В клиентском контроллере:public function getCliente() {
$data['clientes'] = Cliente::get(["nome", "id"]);
return view('pedidos.create', compact($data));
}

public function getContato($id) {
$contatos = DB::table("contatos")
->where("cliente_id",$id)
->pluck("nome","id");
return response()->json($contatos);
}

public function store(Request $request) {
$pedido = new Pedido();

$pedido->cliente_id = $request->cliente_id;
$pedido->contato_id = $request->contato_id;

$pedido->save();
return redirect('/pedido')->with('success','Pedido criado');
}

И, наконец, мой pedido/create.blade.php:
@extends('layouts.app')
@section('content')



@csrf
Cadastrar pedidos
@if($errors->any)
  • @foreach($errors->all() as $error)
  • {{ $error }}
    @endforeach
@endif


Cliente:

Select cliente
@foreach ($clientes as $data)
{{$data->nome}}
@endforeach


Contato:





Cadastrar
Voltar





@endsection


$(document).ready(function(){
$('#cliente_id').on('change', function () {
var idCliente = this.value;
$("#contato_id").html('');
$.ajax({
url: '{{url("cliente/fetchContato")}}'+idCliente,
type: "POST",
data: { cliente_id: idCliente},
success: function (result) {
alert()
$('#contato_id').html('Select contato');
$.each(result.contatos, function (key, value) {
$("#contato_id").append('' + value.name + '');
});
}
});
});
});



Подробнее здесь: https://stackoverflow.com/questions/783 ... 0-and-ajax
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»