How to upload Multiple Images in Laravel web page? - laravel

It uploads multiple images in database with below code as well as in admin panel but the problem is the images does not appear in laravel web page means it displays one image replace another image. Pls anyone can help me.
CMS Controller
public function store(Request $request)
{
$ginput = [];
if($request->hasFile('gallery')){
$files = $request->file('gallery');
foreach ($files as $file) {
$ginput[] = ImageUpload::upload('/upload/cms',$file);
}
$input['gallery'] = implode(',', $ginput);
}
}
Form.blade
<div class="col-md-12">
<p>Gallery Image</p>
<div class="col-md-6 col-md-offset-3">
<input type="file" name="gallery_multiple[]" class="form-control" multiple="multiple">
</div><br><br>
<p class="text-center">- OR -</p>
</div>
#if(isset($cms) && !empty($cms->gallery))
<?php
$galleryArray = explode(',', $cms->gallery);
?>
#if(!empty($galleryArray) && count($galleryArray) > 0)
#foreach($galleryArray as $gallery)
<div class="col-md-3 mb-4 gallery-image-parent">
<input class="upload property-image-input" type="hidden" value="{{ $gallery }}">
<div class="fuzone">
<div class="fu-text" style="margin: 0px;height: 100%;">
<img src="{{ asset('/upload/cms/'.$gallery) }}" class="property-image-preview">
</div>
<i style="background-color: red; color: #fff; height: 30px !important; width: 30px !important; border-radius: 50% !important; padding-top: 5px !important; position: relative !important; top: -160px !important; right: -92px !important;" class="fa fa-trash-o gallery-image-remove" data-page-type="{{ !isset($cms) ? 'create' : 'edit' }}" data-id="{{ $cms->id }}" data-image-name="{{ $gallery }}" style="font-size: 20px;top: -165px;"></i>
</div>
</div>
#endforeach
#endif

Related

Is it possible to generate PDF using dompdf from form data before submitting the form to database in laravel?

Applogies for the question again. I'm new to laravel and this is my first project.
I'm trying to generate a pdf using DomPDF but before submitting my form to database, I dont know whether it is possible or not.
this is my create.blade.php code
#extends('layouts.main')
#section('content')
<!-- Page Heading -->
<div class="d-sm-flex align-items-center justify-content-between mb-4">
<h1 class="h3 mb-0 text-gray-800">Orders</h1>
</div>
<div class="container">
<div class="row justify-content-center">
<div class="col-md-8 col-lg-12">
<div>
<div class="card-header">{{ __('Creating Order') }}
Back
</div>
<div>
<form method="GET" action="{{ route('orders.create') }}" enctype="multipart/form-data">
#csrf
<div class="form-row align-items-center">
<div class="form-group col-md-6 col-lg-5">
<select id="customer_name" onchange="this.form.submit()" type="search" name="customer_id" class="form-control #error('customer_id') is-invalid #enderror" value="{{ old('customer_id') }}" required >
<option selected></option>
#foreach ($customers as $customer)
<option value="{{ $customer->id }}">{{ $customer->customer_name }}</option>
#endforeach
</select>
#error('customer_id')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
#enderror
</div>
<div class="col-auto">
<input id="btn" type="button" class="btn btn-primary mb-3" value="Show Catalog" onclick="showDiv()">
</div>
</div>
<div class="m-3">
Displaying Catalog for: <strong> <span style="color: red" id="customerName"></span><span style="color: red">. {{$count_linkeds}}</span></strong> items found in this Catalog.
</div>
</form>
<form method="POST" action="{{ route('orders.store') }}" enctype="multipart/form-data">
#csrf
<main id="catalog" style="display: none" class="main">
<div class="container">
<div class="row s6 m3">
#foreach($linkeds as $lnkditem)
<div class="col s6 m3">
<div class="card item-images">
<div class="img-wrapper">
<img src="{{ asset('uploads/linkedItems/'.$lnkditem->item_image) }}" width= '50' height='50' class="img img-responsive" />
</div>
<div class="card-content mt-2 item">
<h6 style="font-size: 18px">
Product Name: <strong style="color: red">{{ $lnkditem->product->product_name}}</strong>
</h6>
<div style="float: right; margin-top: -30px">
<label hidden style="float: right;" for="linked_id">{{ __(': Linked ID') }}</label>
<textarea hidden style="text-align: center; resize: none; width:100px; height: 28px; overflow:hidden; border:none; background-color: #f8f8f8;" readonly rows="1" name="linked_id" id="linked_id" class="form-control"
value="{{ old('linked_id', $lnkditem->id) }}">{{ $lnkditem->id}}</textarea>
</div>
<p>
Product description: <strong style="color: red"> {{ $lnkditem->product->product_description}}</strong>
</p>
Item Name: <span readonly id="item_name" name="item_name" style="font-weight: bold; color: black" value="{{ $lnkditem->item->item_name}}">{{ $lnkditem->item->item_name}}</span>
<p>
Item description: <strong style="color: black"> {{ $lnkditem->item->item_description}}</strong>
</p>
<p>
Supplier Ref.: <strong style="color: black"> {{ $lnkditem->supplier_ref_no}}</strong>
</p>
<p>
Supplier Barcode: <strong style="color: black"> {{ $lnkditem->supplier_barcode}}</strong>
</p>
<div class="pass-quantity col-lg-3 col-md-4 col-sm-3 pl-0">
<label for="item_quantity" class="pass-quantity">Quantity:</label>
<input style="color: red" name="item_quantity" class="form-control" type="number" value="0" min="0">
</div>
<div>
<label for="pass-quantity" class="pass-quantity" style="color: red; font-weight: bold; float: right; margin-right: 45px !important; margin-top: -32px">Item Price: AED - </label>
<p type="number" name="item_cost" class="item_cost" style="color: red; font-weight: bold; float: right; margin-top: -32px">
{{ $lnkditem->item_cost}}
</p>
</div>
<div class="product-price d-none">{{ $lnkditem->item_cost}}</div>
<hr class="sidebar-divider">
<strong style="color: red"><p>Total Amount: AED:</p></strong>
<div class="product-line-price pt-4 pb-4 text-uppercase" style="color: red; font-weight: bold; float: right; margin-top: -67px">
<strong><span style="color: red" type="number" class="product-line-price">0.00</span></strong>
</div>
</div>
</div>
</div>
#endforeach
</div>
</div>
<div class="card card-action mb-3 pt-4" style="padding: 15px; height: 100%; width: 50%; margin-left: 25%">
<div class="mb-3" style="margin-left: 15px">
<label for="order_unq_id"></label>
Order UID: <textarea name="order_unq_id" style="color: red; font-weight: bold; width: 350px; resize: none; margin-left: 22%; margin-top: -31px !important; height: 38px; overflow:hidden; border:none; background-color: #f8f8f8;" readonly rows="1" id="order_unq_id" class="form-control #error('order_unq_id') is-invalid #enderror" value="{{ old('order_unq_id') }}">
</textarea>
</div>
<div style="margin-left: 20px">
Saving Order for - <strong> <span class="text-uppercase" style="color: red" id="order_save_customerName"></span></strong>
<input type="text" class="customerName_order_save_input" hidden id="customerName_order_save_input" value="">
</div><br>
<div class="col-xl-12 col-lg-4 col-md-5 totals">
<div class="border border-gainsboro mb-3 px-3">
<div class="border-bottom border-gainsboro">
<p class="text-uppercase mb-0 py-3 bg-primary text-white text-center"><strong>Order Summary</strong></p>
</div>
<p class="mt-3 text-uppercase">Subtotal AED:</p>
<div class="totals-item d-flex align-items-center justify-content-between"
style="float: right; margin-top: -40px">
<p class="totals-value" id="cart-subtotal"></p>
</div>
<div class="totals-item d-flex align-items-center justify-content-between">
<p class="text-uppercase">Aprox. VAT #5%</p>
<p class="totals-value tax" id="cart-tax"></p>
</div>
<div class="totals-item totals-item-total d-flex align-items-center justify-content-between mt-3 pt-3 border-top border-gainsboro">
<label for="total" class="text-uppercase" style="color: red;"><strong>grand Total</strong></label>
<input type="text" class="total_input" hidden id="total_input" name="total_input" value="0.00">
<textarea style="self-align: center; text-align: right; color: red; padding-top !important; 10px; resize: none; width:100px; height: 35px; overflow:hidden; border:none; background-color: white; font-size: 18px" readonly rows="1"
class="totals-value font-weight-bold cart-total" name="total" id="total" style="color: red;"></textarea>
</div>
</div>
</div>
<div>
<a type="submit" target="_blank" class="btn btn-success" href="{{route('mht_order_pdf')}}">Generate PDF</a>
</div>
<button type="submit" class="btn btn-primary" id="save_order" >Save Order</button>
</div>
</main>
</form>
</div>
</div>
</div>
</div>
</div>
#endsection
I dont want pdf to get data from database. I need to generate the pdf with form data before form gets submit to database. Is this possible to achive? Thank you in advance.
In terms of tecnicality, this is possible. Personally I've done something like this, only that the PDF is being generated after the form is stored to DB, but before the request is sent back to users.
So in the controller, you can do something like this:
// first validate request inputs..
// then generate the PDF
PDF::generate('order_pdf'); // or something, idk what's the actual syntax
// finally
return view('order_dashboard');
However you need to know that while the PDF::generate() line is being executed, the app will wait until it finished before moving to the next line, meaning that the execution is being done synchronously. Thus if the PDF generation takes too long, user will have to wait for it. To face this issue, you might want to look at Laravel's Queue so that the PDF generation can be executed asynchronously.

The null value is being validated. Laravel

I have a form with dynamically added / removed inputs, however if I add input and don't enter anything, the null value is written to the database, the validator does not catch null. Googling did not find a similar question, on the contrary, everyone was interested in how to pass null through the validator. Maybe I didn't google it well.
$request->validate([
'properties' => 'required|min:1',
]);
Properties fiel:
<div class="input-group row">
<label for="category_id" class="col-sm-2 col-form-label">Product properties: </label>
<div class="row">
<div class="col-lg-12">
<div id="inputFormRow">
<div class="input-group mb-3">
#isset($product)
#foreach($product->properties as $prod)
<input type="text" name="properties[][key]" value="{{ $prod['key'] ?? '' }}" class="form-control m-input editinp-key" placeholder="Key" autocomplete="off">
<input type="text" name="properties[][value]" value="{{ $prod['value'] ?? '' }}" class="form-control m-input ml-3 editinp-value" placeholder="Value" autocomplete="off">
<div class="input-group-append ml-3">
<button id="removeRow" type="button" class="btn btn-danger">Remove</button>
</div>
#endforeach
#endisset
#if(Session::has('properties'))
#foreach(Session::get('properties') as $prop)
<input type="text" name="properties[][key]" value="{{ $prop['key'] ?? '' }}" class="form-control m-input" placeholder="Key" autocomplete="off">
<input type="text" name="properties[][value]" value="{{ $prop['value'] ?? '' }}" class="form-control m-input ml-3" placeholder="Value" autocomplete="off">
<div class="input-group-append ml-3">
<button id="removeRow" type="button" class="btn btn-danger">Remove</button>
</div>
#endforeach
#endif
</div>
</div>
<div id="newRow"></div>
<button id="addRow" type="button" class="btn btn-info">Add</button>
</div>
</div>
</div>
jQuery:
$("#addRow").click(function () {
var html = '';
html += '<div id="inputFormRow">';
html += '<div class="input-group mb-3">';
html += '<input type="text" name="properties[][key]" class="form-control m-input ml-3" placeholder="Key" autocomplete="off">';
html += '<input type="text" name="properties[][value]" class="form-control m-input ml-3" placeholder="Value" autocomplete="off">';
html += '<div class="input-group-append ml-3">';
html += '<button id="removeRow" type="button" class="btn btn-danger">Remove</button>';
html += '</div>';
html += '</div>';
$('#newRow').append(html);
});
// remove row
$('#removeRow').on('click', function () {
$(this).closest('#inputFormRow').remove();
});
Assuming you pass an array of objects with key and value keys, you can validate your request like this:
$request->validate([
'properties' => 'required|min:1',
'properties.*.key' => 'required',
'properties.*.value' => 'required',
]);
Maybe use Validator ?
$data = Validator::make($request->all(), [
'properties' => ['present', 'string', 'min:1'],
]);
if ($data->fails()) {
$error_msg = "Validation failed, please reload the page";
return Response::json($data->errors());
}
From further comments I realized what it is you are trying to do:
It is very similar to what i did here:
page.blade.php:
<table class="table table-bordered" id="dynamic_field">
#if ($errors->any())
<tbody id="dynamic_field-1">
#php $name_count = 1 #endphp
#foreach (old('name') as $name)
#if($name_count == 1)
<tr id="{{$name_count}}">
<td style="width: 90%; padding: 0px; position: relative;"><input style="position: absolute; top: 0px; left: 0px; height: 100%; border: none; border-radius: 0px;" type="text" name="name[]" value="{{old('name.'.($name_count-1))}}" class="form-control #error('name.'.($name_count-1)) is-invalid #enderror" maxlength="240"/></td>
<td style="width: 10%;"><button type="button" name="add" id="add-1" class="btn btn-success">{{ __('Add More') }}</button></td>
</tr>
#else
<tr id="row{{$i}}">
<td style="width: 90%; padding: 0px; position: relative;"><input style="position: absolute; top: 0px; left: 0px; height: 100%; border: none; border-radius: 0px;" type="text" name="name[]" value="{{old('name.'.($name_count-1))}}" class="form-control #error('name.'.($name_count-1)) is-invalid #enderror" maxlength="240"/></td>
<td style="width: 10%;"><button type="button" name="remove" id="{{$i}}" class="btn btn-danger btn_remove">X</button></td>
</tr>
#endif
#php $i += 1 #endphp
#php $name_count += 1 #endphp
#endforeach
</tbody>
#else
<tbody id="dynamic_field-1">
<tr>
<td style="width: 90%; padding: 0px; position: relative;"><input style="position: absolute; top: 0px; left: 0px; height: 100%; border: none; border-radius: 0px;" type="text" name="name[]" class="form-control" maxlength="240"/></td>
<td style="width: 10%;"><button type="button" name="add" class="btn btn-success" id="add-1" >{{ __('Add More') }}</button></td>
</tr>
</tbody>
#endif
</table>
jQuery:
$(document).ready(function(){
var i = {{$i ? $i+=1 : '1'}};
$('#add-1').click(function(){
i++;
$('#dynamic_field-1').append('<tr id="row'+i+'"><td style="width: 90%; padding: 0px; position: relative;"><input style="position: absolute; top: 0px; left: 0px; height: 100%; border: none; border-radius: 0px;" type="text" name="name[]" class="form-control" maxlength="240"/></td><td style="width: 10%;"><button type="button" name="remove" id="'+i+'" class="btn btn-danger btn_remove">X</button></td> </tr> ');
});
$(document).on('click', '.btn_remove', function(){
var button_id = $(this).attr("id");
$('#row'+button_id+'').remove();
});
});
And Controller:
foreach($request->input('name') as $key => $value) {
$rules["name.{$key}"] = array('string', 'max:255');
}
$data = Validator::make($request->all(), $rules);
if ($data->fails()) {
return redirect()
->back()
->withErrors($data)
->withInput($request->input());
}else{...
Your description isn't clear enough to understand. For validation you may use required|min:1|not_in:null for getting the validation error
The validation should be like this:
$request->validate([
'properties' => 'required|integer|min:1',
]);

i am not able to find order through id in laravel

I am new to shopping cart. I am able to get all the data from order table on this page but i am not able to find single order by ID:
This is my view page where i am sending the $id to the controller of the order.
id)}}">Order# {{$order->id}}
The whole code:
'''
#foreach($orders as $order)
#if($order->status == "CompletedOrders")
<div class="panel panel-default">
<div class="panel-body">
<ul class="list-group" >
<li class="list-group-item" style="background-color: #5C94ED">
<h1 style="color: #FBEB58">Order# {{$order->id}}</h1>
<span class="badge" style="color: black; font-size: 16px">Name: {{$order->name}}</span>
<br>
<span class="badge" style="color: black; font-size: 16px">Phone: {{$order->phone}}</span>
<br>
#foreach($order->cart->items as $item)
<span class="badge" style="color: #FBEB58; font-size: 16px">{{$item['qty'] }} {{ $item['item']['name'] }}</span>
<br>
<span class="badge" style="color: #FBEB58; font-size: 16px">Price: ${{ $item['price'] }}</span>
<br>
#endforeach
<span class="badge" style="color: black; font-size: 16px">Instructions: {{$order->table}}</span>
<br>
<span class="badge" style="color: black; font-size: 16px">Time: {{$order->created_at}}</span>
<br>
</ul>
</div>
<div class="panel-footer">
<strong style="color: #222D32; font-size: 18px">Total Price: ${{ $order->cart->totalPrice }}</strong>
</div>
</div>
<input type="button" onclick="printDiv('printableArea')" value="print a div" />
#endif
#endforeach
'''
This is my route
'''
Route::get('showcompleteorder/{id}','OrderController#showCompleteOrder')->name('showcompleteorder');
'''
and this is my controller:
public function showCompleteOrder($id){
$orders = Order::find($id);
$orders->transform(function ($order, $key) {
$order->cart = unserialize($order->cart);
return $order;
});
return view('orders.showcompleteorders', ['orders' => $orders]);
}
but when i run this. it gives me a error of transform:
BadMethodCallException
Call to undefined method App\Order::transform()
http://localhost:8000/showcompleteorder/2
This is my view where i am trying to get the order by id:
#foreach($orders as $order)
<div class="panel panel-default">
<div class="panel-body">
<ul class="list-group" >
<li class="list-group-item" style="background-color: #5C94ED">
<h1 style="color: #FBEB58">Order# {{$order->id}}</h1>
<span class="badge" style="color: black; font-size: 16px">Name: {{$order->name}}</span>
<br>
<span class="badge" style="color: black; font-size: 16px">Phone: {{$order->phone}}</span>
<br>
#foreach($order->cart->items as $item)
<span class="badge" style="color: #FBEB58; font-size: 16px">{{$item['qty'] }} {{ $item['item']['name'] }}</span>
<br>
<span class="badge" style="color: #FBEB58; font-size: 16px">Price: ${{ $item['price'] }}</span>
<br>
#endforeach
<span class="badge" style="color: black; font-size: 16px">Instructions: {{$order->table}}</span>
<br>
<span class="badge" style="color: black; font-size: 16px">Time: {{$order->created_at}}</span>
<br>
</ul>
</div>
<div class="panel-footer">
<strong style="color: #222D32; font-size: 18px">Total Price: ${{ $order->cart->totalPrice }}</strong>
</div>
</div>
#endforeach
Can Someone please help me

Without credentials check login redirect home page

controller code
public function login(){
if(Auth::attempt([
'email' => request('email'),
'password' => request('password')])){
$user = Auth::user();
$success['token'] = $user->createToken('AppName')->accessToken;
return response()->json(['success' => $success], $this-> successStatus);
} else{
return response()->json(['error'=>'Unauthorised'], 401);
}
}
When I am doing login its wrongly redirect home, without check any database registration and you put wrong email and password still redirect home page....so I want to perfect work, what is mistake in code
second problem I set image logo this line but its not display image
<img src="{{ asset('img/Image.jpg') }}">
<link href="//maxcdn.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css">
<script src="//maxcdn.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<!------ Include the above in your HEAD tag ---------->
<style type="text/css">
body {
margin: 0;
padding: 0;
background-image: url("img/back.jpg");
background-repeat: no-repeat;
height: 500px;
background-position: center;
background-repeat: no-repeat;
background-size: cover;
position: relative;
}
#login .container #login-row #login-column #login-box {
margin-top: 150px;
max-width: 600px;
height: 320px;
border: 2px #9C9C9C;
border-radius: 15px;
background-color: white;
}
#login .container #login-row #login-column #login-box #login-form {
padding: 20px;
}
#login .container #login-row #login-column #login-box #login-form #register-link {
margin-top: -85px;
}
.btn {
margin:auto;
display:block;
padding: 2% 10%;
}
</style>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<div id="login">
<div class="container">
<div id="login-row" class="row justify-content-center align-items-center">
<div id="login-column" class="col-md-6">
<div id="login-box" class="col-md-12">
<form id="login-form" class="form" method="POST" action="{{ route('login') }}">
#csrf
<h3 class=""><img src="{{ asset('img/Image.jpg') }}">Login</h3>
<div class="form-group">
<label for="username" class="font-weight-bold">Email:</label><br>
<input type="text" id="email" type="email" class="form-control #error('email') is-invalid #enderror" name="email" value="{{ old('email') }}" required autocomplete="email" placeholder="enter email" autofocus>
#error('email')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
#enderror
</div>
<div class="form-group">
<label for="password" class="font-weight-bold">{{ __('Password') }}</label>
<input id="password" type="password" class="form-control #error('password') is-invalid #enderror" name="password" required autocomplete="current-password" placeholder="enter password">
#error('password')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
#enderror
</div>
<div class="form-group">
<button type="submit" name="submit" class="btn btn-default font-weight-bold" value="SIGN IN">{{ __('SIGN IN') }}</button>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
<!-- end snippet -->
Controller for the first issue
public function login()
{
if (Auth::attempt([
'email' => request('email'),
'password' => request('password')])) {
$user = Auth::user();
$success['token'] = $user->createToken('AppName')->accessToken;
return back()->withErrors([
'message' => 'Success'
])->withInput();
}
else
{
return back()->withErrors([
'message' => 'Unauthorised'
])->withInput();
}
}
It is for the second issue
<img src="{{ url('asset/img/Image.jpg') }}">
NOTE : url path start from public/
It sounds like you are already authenticated and you have the guest middleware assigned to the route that points to this login method.
You should also have this same middleware assigned to the route that show the login form so that you can't get to the form if you are already authenticated.
The guest middleware, App\Http\Middleware\RedirectIfAuthenticated, redirects a user who is already authenticated to /home by default.

ajax response is working without wp_ajax action

HTML:
<form enctype="multipart/form-data" action="" method="POST" style="margin-top: 20px; ">
<div class="row btts-form-group clearfix">
<div style="width: 20%; float: left; margin-right: 1%;">
Image : <input type="file" name="image[]">
</div>
<div style="width: 27%; float: left; margin-right: 1%;">
Title : <input type="text" name="title[]">
</div>
<div style="width: 22%; float: left; margin-right: 1%;">
More Info : <input type="text" name="more_info[]">
</div>
<div style="width: 22%; float: left; margin-right: 1%;">
Button : <input placeholder="Put the url.." type="text" name="button_link[]">
</div>
<div style="width: 5%; float: left; ">
<input type="button" class="button button-primary add_more" value="+">
</div>
</div>
<input type="submit" class="button button-primary" value="Save Change" style="margin-top: 20px;">
</form>
Here is my simple jquery code to append a row of a form:
$(document).ready(function(){
$('body').on('click', '.add_more', function(e){
$.ajax({
url : absbBtToS.ajax_url,
type : 'get',
data : {
action : 'new_slider_html',
security : absbBtToS.check_nonce
},
success : function( response ) {
$('.btts-form-group:last').after(response);
//console.log(response);
//jQuery('.rml_contents').html(response);
},
error : function(error){
console.log(error);
}
});
e.stopImmediatePropagation();
});
});
Ajax Action :
add_action( 'wp_ajax_new_slider_html', 'new_slider_html');
function new_slider_html(){
include( plugin_dir_path( __FILE__ ) . 'admin/partials/absb_bt_to_s-admin-display.php');
if( !check_ajax_referer( 'absbBtToS-nonce', 'security' ) ){
wp_send_json_error('error!');
}
show_slider_form_input();
}
And show_slider_form_input(); definition is as follows which is inside absb_bt_to_s-admin-display.php:
function show_slider_form_input(){?>
<div class="row btts-form-group clearfix" >
<div style="width: 20%; float: left; margin-right: 1%;">
Image : <input type="file" name="image[]" />
</div>
<div style="width: 27%; float: left; margin-right: 1%;">
Title : <input type="text" name="title[]" />
</div>
<div style="width: 22%; float: left; margin-right: 1%;">
More Info : <input type="text" name="more_info[]" />
</div>
<div style="width: 22%; float: left; margin-right: 1%;">
Button : <input placeholder="Put the url.." type="text" name="button_link[]" />
</div>
<div style="width: 5%; float: left; ">
<input type="button" class="button button-primary add_more" value="+" />
</div>
</div>
<?php }
Everything is cool and working as expected. But if I remove following code:
add_action( 'wp_ajax_new_slider_html', 'new_slider_html');
function new_slider_html(){
include( plugin_dir_path( __FILE__ ) . 'admin/partials/absb_bt_to_s-admin-display.php');
if( !check_ajax_referer( 'absbBtToS-nonce', 'security' ) ){
wp_send_json_error('error!');
}
show_slider_form_input();
}
It works as usual. As far I know the above code is only responsible to push response. I searched in my entire plugin no duplicate code is there. My question is how the ajax response come from? I am apologizing if I am asking something like nonsense. I just started to learn Ajax with wordpress.
I had the same "issue" but when I searched the whole theme folder I found that I am declaring add_action wp_ajax in other function file.

Resources