How to append json array response to the bootstrap table

I have question regarding on my codes, I already have a result on my multiple array json response, The only problem is to append the result on the table.

I have question regarding on my codes, I already have a result on my multiple array json response, The only problem is to append the result on the table.

On my response I want to append select_order_details to the table, how to use foreach to show all result and append the result to the table. 

My Html:

<table class="table table-striped table-bordered" style="width:100%;">
<thead>
    <tr font-size: 14px; ">
        <th scope="col">Menu Image</th>
        <th scope="col">Menu Name</th>
        <th scope="col">Quantity</th>
        <th scope="col">Subtotal</th>
    </tr>
</thead>
<tbody style=" font-size:14px;">
    <tr>
        <td></td>
    </tr>
</tbody>

My Ajax Function:

    $('button#gather_customer_order').on('click',function()
  {
      var order_id = $(this).attr('data-order-id');
      var customer_id = $(this).attr('data-customer-id');
  $.ajax({
      url:'/customer_detail_ordering_logic',
      type:'GET',
      data:{order_id:order_id,customer_id:customer_id},
      success:function(response){

          var response_customer_id = response[0].customer_details_id[0].customer_id;
          var response_order_id = response[0].customer_details_id[0].order_id;

            $.ajax({
                url:'/fetch_detail_order_monitor',
                type:'GET',
                data:{response_order_id:response_order_id,response_customer_id:response_customer_id},
                success:function(res){


                   console.log(res);



                }
            })

      }
  })

});


Laravel 6 Ajax Request Tutorial

Laravel 6 Ajax Request Tutorial

In this post, you'll learn how to write jquery ajax form submit in Laravel 6. We will write Jquery Ajax post request Laravel 6. We will protect csrf token with Ajax request in Laravel 6. I will give you very simple example of Laravel 6 Ajax post request tutorial.

You can easily use Ajax get request, Ajax post request, Ajax put request, Ajax delete request ect with Laravel 6.

Ajax request is a basic requirement of any PHP project, we are always looking for without page refresh data should store in database and it's possible only by Jquery Ajax request. same thing if you need to write ajax form submit in Laravel 6 then i will help you how you can pass data with ajax request and get on controller.

If you want to add ajax request with validation then you can follow this article: Laravel 6 Ajax Form Validation

You have to just do three things to understand how to use ajax request in Laravel 6, so just follow this three step and you will learn how to use Ajax request in your Laravel 6 application.

Step 1: Create Routes

First thing is we put two routes in one for displaying view and another for post Ajax. So simple add both routes in your route file.

routes/web.php

Route::get('ajaxRequest', '[email protected]');
Route::post('ajaxRequest', '[email protected]')->name('ajaxRequest.post');

Step 2: Create Controller

Same things as above for routes, here we will add two new method for routes. One will handle view layout and another for post ajax request method, so let's add bellow:

app/Http/Controllers/HomeController.php

<?php

namespace App\Http\Controllers;
use Illuminate\Http\Request;

class AjaxController extends Controller
{
/**
* Create a new controller instance.
*
* @return void
*/
public function ajaxRequest()
{
return view('ajaxRequest');
}

/**
 * Create a new controller instance.
 *
 * @return void
 */
public function ajaxRequestPost(Request $request)
{
    $input = $request-&gt;all();
    \Log::info($input);

    return response()-&gt;json(['success'=&gt;'Got Simple Ajax Request.']);
}

}

Read Also: Laravel 6 CRUD Application Tutorial

Step 3: Create Blade File

Finally we require to create ajaxRequest.blade.php file and here we will write code of jquery ajax and pass Laravel token. So blade file is very important in ajax request. So let's see bellow file:

resources/views/ajaxRequest.blade.php

<!DOCTYPE html>
<html>
<head>
<title>Laravel 6 Ajax Request example</title>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="//netdna.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" rel="stylesheet">
<script src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<meta name="csrf-token" content="{{ csrf_token() }}" />
</head>
<body>

&lt;div class="container"&gt;
    &lt;h1&gt;Laravel 6 Ajax Request example&lt;/h1&gt;

    &lt;form &gt;

        &lt;div class="form-group"&gt;
            &lt;label&gt;Name:&lt;/label&gt;
            &lt;input type="text" name="name" class="form-control" placeholder="Name" required=""&gt;
        &lt;/div&gt;

        &lt;div class="form-group"&gt;
            &lt;label&gt;Password:&lt;/label&gt;
            &lt;input type="password" name="password" class="form-control" placeholder="Password" required=""&gt;
        &lt;/div&gt;

        &lt;div class="form-group"&gt;
            &lt;strong&gt;Email:&lt;/strong&gt;
            &lt;input type="email" name="email" class="form-control" placeholder="Email" required=""&gt;
        &lt;/div&gt;

        &lt;div class="form-group"&gt;
            &lt;button class="btn btn-success btn-submit"&gt;Submit&lt;/button&gt;
        &lt;/div&gt;

    &lt;/form&gt;
&lt;/div&gt;

</body>
<script type="text/javascript">

$.ajaxSetup({
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    }
});

$(".btn-submit").click(function(e){

    e.preventDefault();

    var name = $("input[name=name]").val();
    var password = $("input[name=password]").val();
    var email = $("input[name=email]").val();

    $.ajax({
       type:'POST',
       url:"{{ route('ajaxRequest.post') }}",
       data:{name:name, password:password, email:email},
       success:function(data){
          alert(data.success);
       }
    });

});

</script>

</html>

Now you can run your example and see.

You will get output like as bellow:

Output

[2019-09-17 03:54:19] local.INFO: array (
'name' => 'Hardik Savani',
'password' => '123456',
'email' => '[email protected]',
)

I hope it can help you

Thanks for reading

If you liked this post, share it with all of your programming buddies!

Follow me on Facebook | Twitter

Further reading

☞ Tutorial Laravel 6 with Docker and Docker-Compose

☞ Laravel 6 CRUD Application Tutorial

☞ What's New in Laravel 6.0?

Originally published https://itsolutionstuff.com


How to use Ajax form validation in Laravel 6

How to use Ajax form validation in Laravel 6

In this tutorial, I would like to guide how to use Aajax form validation in Laravel 6. We will use Laravel 6 validation with ajax post request. We will gives errors response and display it on front side using Ajax Laravel 6

Originally published at https://itsolutionstuff.com

Form validation is a basic requirement of any form. We should implement validation even if you use Ajax or simple form. But if you are working with Jquery Ajax then you can use also server side validation using Laravel and display error messages on front side.

You can simply use Laravel 6 validation like required, email, same, unique, date, integer etc using Jquery Ajax post, get, put or delete request. We will use Validator make function for create validation and check using passes() function.

In this example i will show you how to use Laravel default validation with Jquery Ajax. Here we also print Laravel validation message when false. So if you want to ajax form validation in Laravel app then you are right place.

Just follow bellow step to create ajax validation example:

Step 1: Add Route

In first step we will create new two routes for demo. so open your routes/web.php file and add following route.

routes/web.php

Route::get('my-form','[email protected]');
Route::post('my-form','[email protected]')->name('my.form');

Step 2: Create Controller

In this point, now we should create new controller as HomeController. So run bellow command and create new controller.

php artisan make:controller HomeController

After bellow command you will find new file in this path app/Http/Controllers/HomeController.php.

In this controller we will write three method for ajax view and post as listed bellow methods:

1) myform()

2) myformPost()

So, let's copy bellow code and put on HomeController.php file.

app/Http/Controllers/HomeController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Validator;

class HomeController extends Controller
{

/**
 * Display a listing of the myform.
 *
 * @return \Illuminate\Http\Response
 */
public function myform()
{
	return view('myform');
}
 
/**
 * Display a listing of the myformPost.
 *
 * @return \Illuminate\Http\Response
 */
public function myformPost(Request $request)
{
 
	$validator = Validator::make($request-&gt;all(), [
        'first_name' =&gt; 'required',
        'last_name' =&gt; 'required',
        'email' =&gt; 'required|email',
        'address' =&gt; 'required',
    ]);
 
    if ($validator-&gt;passes()) {
        return response()-&gt;json(['success'=&gt;'Added new records.']);
    }
 
    return response()-&gt;json(['error'=&gt;$validator-&gt;errors()-&gt;all()]);
}

}

Read Also: Laravel 6 Release New Features and Upgrade

Step 3: Create View File

In Last step, let's create myform.blade.php(resources/views/myform.blade.php) for layout and we will write design code and jquery ajax code,so put following code:

resources/views/myform.blade.php

<!DOCTYPE html>
<html>
<head>
<title>Laravel 6 Ajax Validation Example - ItSolutionStuff.com</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.js"></script>
</head>
<body>

<div class="container">
<h2>Laravel 6 Ajax Validation - ItSolutionStuff.com</h2>

&lt;div class="alert alert-danger print-error-msg" style="display:none"&gt;
    &lt;ul&gt;&lt;/ul&gt;
&lt;/div&gt;
   
&lt;form&gt;
    {{ csrf_field() }}
    &lt;div class="form-group"&gt;
        &lt;label&gt;First Name:&lt;/label&gt;
        &lt;input type="text" name="first_name" class="form-control" placeholder="First Name"&gt;
    &lt;/div&gt;
   
    &lt;div class="form-group"&gt;
        &lt;label&gt;Last Name:&lt;/label&gt;
        &lt;input type="text" name="last_name" class="form-control" placeholder="Last Name"&gt;
    &lt;/div&gt;
   
    &lt;div class="form-group"&gt;
        &lt;strong&gt;Email:&lt;/strong&gt;
        &lt;input type="text" name="email" class="form-control" placeholder="Email"&gt;
    &lt;/div&gt;
   
    &lt;div class="form-group"&gt;
        &lt;strong&gt;Address:&lt;/strong&gt;
        &lt;textarea class="form-control" name="address" placeholder="Address"&gt;&lt;/textarea&gt;
    &lt;/div&gt;
   
    &lt;div class="form-group"&gt;
        &lt;button class="btn btn-success btn-submit"&gt;Submit&lt;/button&gt;
    &lt;/div&gt;
&lt;/form&gt;

</div>

<script type="text/javascript">

$(document).ready(function() {
    $(".btn-submit").click(function(e){
        e.preventDefault();
   
        var _token = $("input[name='_token']").val();
        var first_name = $("input[name='first_name']").val();
        var last_name = $("input[name='last_name']").val();
        var email = $("input[name='email']").val();
        var address = $("textarea[name='address']").val();
   
        $.ajax({
            url: "{{ route('my.form') }}",
            type:'POST',
            data: {_token:_token, first_name:first_name, last_name:last_name, email:email, address:address},
            success: function(data) {
                if($.isEmptyObject(data.error)){
                    alert(data.success);
                }else{
                    printErrorMsg(data.error);
                }
            }
        });
   
    }); 
   
    function printErrorMsg (msg) {
        $(".print-error-msg").find("ul").html('');
        $(".print-error-msg").css('display','block');
        $.each( msg, function( key, value ) {
            $(".print-error-msg").find("ul").append('&lt;li&gt;'+value+'&lt;/li&gt;');
        });
    }
});

</script>

</body>
</html>

Now we are ready to run our example so run bellow command for quick run:

php artisan serve

Now you can open bellow URL on your browser:

Read Also: Laravel 6 Authentication Tutorial

http://localhost:8000/my-form

I hope it can help you...

Thanks for reading

If you liked this post, share it with all of your programming buddies!

Follow me on Facebook | Twitter

Further reading

What’s New in Laravel 6.0

Laravel 6 CRUD Application Tutorial

Laravel 6 Image Upload Tutorial

Laravel 6 Authentication Tutorial

Laravel 6 Social Login Tutorial - Login with Github



How to Create Ajax Autocomplete Search from Database in Laravel 6

How to Create Ajax Autocomplete Search from Database in Laravel 6

In this post, you'll learn how to create jquery ajax autocomplete search textbox from database in Laravel 6 using typeahead

Originally published at https://itsolutionstuff.com

I will create very simple example of Ajax autocomplete search in Laravel 6. You can easily make text box field autocomplete in Laravel 6 application.

Bootstrap Typeahead JS provide way of user interface so, we can easily write code of Jquery Ajax and make it dynamic autocomplete search in Laravel 6 application. we can easily use Typeahead JS with bootstrap.

Jquery autocomplete is must if you are dealing with big data, like you have items or products table and thousands of records so it's not possible to give drop-down box, but it is better if we use autocomplete instead of select box.

Follow bellow step to create simple autocomplete search with Laravel 6 application.

Step 1 : Download Laravel 6

first of all we need to get fresh Laravel 6 version application using bellow command, So open your terminal OR command prompt and run bellow command:

composer create-project --prefer-dist laravel/laravel blog
Step 2: Create Migration and Model

In this step we have to create migration for items table using Laravel 6 php artisan command, so first fire bellow command:

php artisan make:migration create_items_table

After this command you will find one file in following path "database/migrations" and you have to put bellow code in your migration file for create items table.

<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateItemsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('items', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name');
$table->timestamps();
});
}

/**
 * Reverse the migrations.
 *
 * @return void
 */
public function down()
{
    Schema::dropIfExists('items');
}

}

Then after, simply run migration:

php artisan migrate

After create "items" table you should create Item model for items, so first create file in this path "app/Item.php" and put bellow content in item.php file:

app/Item.php

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Item extends Model
{

}

Step 3: Create Route

In this is step we need to create routes for display view and ajax method. so open your "routes/web.php" file and add following route.

routes/web.php

Route::get('search', '[email protected]')->name('search');
Route::get('autocomplete', '[email protected]')->name('autocomplete');
Step 4: Create Controller

In this step, we have to create new controller as SearchController and we have also need to add two methods index() and autocomplete() on that controller like as you can see bellow:

app/Http/Controllers/SearchController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Item;

class SearchController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
return view('search');
}

/**
 * Show the form for creating a new resource.
 *
 * @return \Illuminate\Http\Response
 */
public function autocomplete(Request $request)
{
    $data = Item::select("name")
            -&gt;where("name","LIKE","%{$request-&gt;query}%")
            -&gt;get();

    return response()-&gt;json($data);
}

}

Step 5: Create View File

In Last step, let's create search.blade.php(resources/views/search.blade.php) for layout and lists all items code here and put following code:

resources/views/search.blade.php

<!DOCTYPE html>
<html>
<head>
<title>Laravel 6 Autocomplete Search using Bootstrap Typeahead JS - ItSolutionStuff.com</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/css/bootstrap.min.css" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-3-typeahead/4.0.1/bootstrap3-typeahead.min.js"></script>
</head>
<body>

<div class="container">
<h1>Laravel 6 Autocomplete Search using Bootstrap Typeahead JS - ItSolutionStuff.com</h1>
<input class="typeahead form-control" type="text">
</div>

<script type="text/javascript">
var path = "{{ route('autocomplete') }}";
$('input.typeahead').typeahead({
source: function (query, process) {
return $.get(path, { query: query }, function (data) {
return process(data);
});
}
});
</script>

</body>
</html>

Make sure you have some dummy data on your items table before run this example. Now we are ready to run our example so run bellow command for quick run:

php artisan serve

Now you can open bellow URL on your browser:

Read Also: Laravel 6 Image Upload Tutorial

http://localhost:8000/search

I hope it can help you...

Thanks for reading

If you liked this post, share it with all of your programming buddies!

Follow me on Facebook | Twitter

Further reading

Laravel 5.8 Tutorial for Beginners

Upgrading Laravel To 6.0 From 5.8

Laravel 6 Release New Features and Upgrade

What’s New in Laravel 6.0

Laravel 6 CRUD Application Tutorial

Laravel 6 Image Upload Tutorial