Guten Tag,
ich habe mal wieder neben der Arbeit was Zeit gefunden mich etwas mehr mit Laravel und JS zu beschäftigen, komme aber derzeit nicht weiter.
Es geht sich um folgendes https://www.pakainfo.com/create-laravel-live-search-using-ajax/ unter Laravel 8 und JQuery V2
Ich habe dem Autor schon vor 20 Tagen geschrieben, bekomme aber keine Antwort und hoffe man kann mir hier wieder helfen
Vorstellung:
Ich rufe die http://127.0.0.1:8000/invoice/create auf, gebe in der Suche den Firmennamen ein, dieser leitet die Anfrage an name('search_instant_live'), sucht in der companies DB den company_name oder ID und gibt mir die Daten aus.
Route
http://127.0.0.1:8000/search_instant_live funktioniert. An der Route kann es nicht liegen
InvoiceController
invoice/create.blade.php
Auf mich macht es den Eindruck als sendet er erst gar keine Daten an den Controller.
Könnt Ihr mir was dazu sagen?
ich habe mal wieder neben der Arbeit was Zeit gefunden mich etwas mehr mit Laravel und JS zu beschäftigen, komme aber derzeit nicht weiter.
Es geht sich um folgendes https://www.pakainfo.com/create-laravel-live-search-using-ajax/ unter Laravel 8 und JQuery V2
Ich habe dem Autor schon vor 20 Tagen geschrieben, bekomme aber keine Antwort und hoffe man kann mir hier wieder helfen
Vorstellung:
Ich rufe die http://127.0.0.1:8000/invoice/create auf, gebe in der Suche den Firmennamen ein, dieser leitet die Anfrage an name('search_instant_live'), sucht in der companies DB den company_name oder ID und gibt mir die Daten aus.
Route
PHP:
use App\Http\Controllers\InvoiceController;
Route::resource('invoice', InvoiceController::class);
Route::get('/search_instant_live', [App\Http\Controllers\InvoiceController::class, 'action'])->name('search_instant_live');
http://127.0.0.1:8000/search_instant_live funktioniert. An der Route kann es nicht liegen
InvoiceController
PHP:
<?php
namespace App\Http\Controllers;
use App\Models\Company;
use App\Models\Group;
use App\Models\Invoice;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
class InvoiceController extends Controller
{
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
if (!Group::access_check(Auth::user()->user_perm_grp, 'add_invoice')) {
return view('access');
exit();
}
return view('invoice.create');
}
function action(Request $request)
{
if ($request->ajax()) {
$output = '';
$query = $request->get('query');
if ($query != '') {
$data = DB::table('companies')
->where('company_name', 'like', '%' . $query . '%')
->orWhere('street', 'like', '%' . $query . '%')
->get();
} else {
$data = DB::table('companies')
->orderBy('id', 'desc')
->get();
}
$total_row = $data->count();
if ($total_row > 0) {
foreach ($data as $row) {
$output .= '' . $row->company_name . '' . $row->street . '';
}
} else {
$output = 'No Data Found';
}
$data = ['table_data' => $output, 'total_data' => $total_row];
echo json_encode($data);
}
}
}
invoice/create.blade.php
HTML:
<div class="form-group">
<input type="text" name="search" id="search" class="form-control" placeholder="Search Member Data" />
</div>
<div class="table-responsive">
<h3 align="center">
Total Data :
<span id="total_records"></span>
</h3>
<table class="table table-striped table-bordered">
<thead>
<tr>
<th>Member Name</th>
<th>Address</th>
<th>City</th>
<th>Postal Code</th>
<th>Country</th>
</tr>
</thead>
<tbody></tbody>
</table>
</div>
<script>
$(document).ready(function () {
fetch_member_data()
function fetch_member_data(query = "") {
$.ajax({
url: "{{ route('search_instant_live') }}",
method: "GET",
data: { query: query },
dataType: "json",
success: function (data) {
$("tbody").html(data.table_data)
$("#total_records").text(data.total_data)
}
})
}
$(document).on("keyup", "#search", function () {
var query = $(this).val()
fetch_member_data(query)
})
})
</script>
Auf mich macht es den Eindruck als sendet er erst gar keine Daten an den Controller.
Könnt Ihr mir was dazu sagen?